使用MD5加密确定前台传输数据是否有效

本文详细介绍了在前后台数据交互中使用MD5签名验证的方法,包括如何生成签名、后台数据验证流程,以及该机制的优缺点。对于防止数据篡改和确保传输安全具有重要作用。

1、前台数据传输

当前台给后台传输数据时,除了最基本的参数,还需要传输一个根据参数以MD5形式生成的一个签名。

例如参数为:

{"a" : 1, "b" : 2, "c" : 3}

那么我们将数据拼成一个如下的字符串

a=1&b=2&c=3

但是除了这些参数,我们还要在前后台统一一个key,作为混淆

例如使用"key" = "jinx",也将其拼入字符串

结果为:a=1&b=2&c=3&key=jinx

将这个字符串通过js进行MD5加密,会生成一个字符串,我们将此字符串(假设为"str")也拼入参数,结果为

{"a" : 1 , "b" : 2 , "c" : 3 , "sign" : "str"}

我们将此数据传入后台

 

2、后台验证数据是否合法

在后台,我们将传来的数据(除sign之外)在此进行md5,加密,key与前台相等

这样我们在后台也将生成一个sign签名,然后将此签名与前台传过来的sign相比,如果相等,则有效,反之则无效。

 

3、个人认为的优点与缺陷

在这种情况下,不正常操作(例如:直接调用接口或者在传输中篡改数据)这种会修改参数的情况下,即使参数被改变,但是sign值是不可能改变的。所以后台会不接受此参数。

但是我认为问题在于,在浏览网页时,是可以看到网页所使用的js文件的,不知道这样会不会导致MD5算法泄露问题,这个问题有待思考。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值