MD5 加密

MD5对一个东西加密   可以认为是不可还原的

1.客户端加密   服务端看md5是不是和数据库一致

2.服务端加密 再看和db是否一致

 

1的情况 网络传的是md5

     传密码   

 

 

post是怎么加密的?

 

 

 

 

有的时候 我们需要和flash交互  这就涉及到数据的交互 flash给我们提交数据 我们往处理后添加数据库.

这个时候 就会有安全问题  flash提交的数据 可能被截获。然后把伪装提交数据。 比如说flash游戏  玩完游戏加积分 然后把积分加到数据库里 。每次玩完flash都提交post提交一个   userid:2,gamenumber:30   如果被别人截获后 (推荐个截取工具 httpwatch) 修改下 userid:2,gamenumber:300000  然后就一下子加了几万份 (曾经QQ空间里的游戏 我就这样刷分过 全部刷到9999999)  这就有很大的安全隐患  尤其是我们的积分可以兑换实物的时候

目前网上的做法是使用 https  协议  还有另一种常用的做法是 调用webservice

我这里使用的是另一种 

首先 和flash开发人员 约定一个MD5公钥 (比如 wlf    然后把wlf用MD5加密(也可以用别的方式加密)   变为fc6796eaaf289c444c76c8fc818bf73c )

然后flash 提交的时候  假设提交 userid:2,gamenumber:30  这是不安全的 现在开始加密 现在他要给我传的是

userid:2,gamenumber:30,t:2011051011053232,m:EUDHSKBHJSHDUIWHDJKHJ

这里面 t 是时间戳 就是flash提交时的当前时间   m则很关键  m是个密钥  时间戳(这里是2011051011053232)+userid(这里是2)+gamenumber(这里是30)+公钥)   拼接成一个字符串 然后再用MD5加密出来的 

现在 我们接受到了上述东西  其他人也截获了上述东西

我们把 时间戳+userid+gamenumber+公钥  组成个字符串 然后用MD5加密  看看是不是与传过来的m相等 相当 则说明没有被篡改活

如果对方把gamenumber改为90  那么m一定是不相同的 则是篡改过的

如果谁有更好的方法 希望告诉下~~谢谢

<?php $show_title="$MSG_LOGIN - $OJ_NAME"; ?> <?php include("template/$OJ_TEMPLATE/header.php");?> <div class="ui error message" id="error" hidden></div> <div class="ui middle aligned center aligned grid" style="height: 500px;" > <div class="row"> <div class="column" style="max-width: 450px"> <h2 class="ui image header"> <div class="content" style="margin-bottom: 10px; "> <?php echo $MSG_LOGIN ?> </div> </h2> <form class="ui large form" id="login" action="login.php" method="post" role="form" class="form-horizontal" onSubmit="return jsMd5();" > <div class="ui existing segment"> <div class="field"> <div class="ui left icon input"> <i class="user icon"></i> <input name="user_id" placeholder="<?php echo $MSG_USER_ID ?>" type="text" id="username"> </div> </div> <div class="field"> <div class="ui left icon input"> <i class="lock icon"></i> <input name="password" placeholder="<?php echo $MSG_PASSWORD ?>" type="password" id="password"> </div> </div> <?php if($OJ_VCODE){?> <div class="field"> <div class="ui left icon input"> <i class="lock icon"></i> <input name="vcode" placeholder="<?php echo $MSG_VCODE ?>" type="text" autocomplete=off > <img id="vcode-img" onclick="this.src='vcode.php?'+Math.random()" height="30px"> </div> </div> <?php }?> <button name="submit" type="submit" class="ui fluid large submit button" ><?php echo $MSG_LOGIN ?></button> 1,1 Top </div> <?php }?> <button name="submit" type="submit" class="ui fluid large submit button" ><?php echo $MSG_LOGIN ?></button> </div> <div class="ui error message"></div> </form> <div class="ui message"> <?php if ($OJ_REGISTER){ ?> <a href="registerpage.php"><?php echo $MSG_REGISTER ?></a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <?php } ?> </div> </div> </div> </div> <script src="<?php echo $OJ_CDN_URL?>include/md5-min.js"></script> <script> function jsMd5(){ if($("input[name=password]").val()=="") return false; $("input[name=password]").val(hex_md5($("input[name=password]").val())); return true; } </script> <?php if ($OJ_VCODE) { ?> <script> $(document).ready(function () { $("#vcode-img").attr("src", "vcode.php?" + Math.random()); }) </script> <?php } ?> <?php include("template/$OJ_TEMPLATE/footer.php");?>
03-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值