1、用户在注册时把注册信息发送到服务端,然后服务端进行MD5加密,这个加密具体是
什么样子的?是把每个信息(密码,用户名,地址,手机号等等)分别加密么?那存到
数据库中的信息是加密之后的么?那这个加密的目的是不是为了防止数据库被黑?
2、用户在登录时输入的密码是没有加密的,那么服务端获取之后如何与数据库中加密了
的密码作对比呢?
3、还有看别的技术贴说一个人发送文件给另一个人会附带一个MD5的效验码,但是如果被中间截取了,在发送一个木马程序加新生成的MD5效验码的话,那这个MD5岂不是没有作用?
请指点迷津
md5是单向加密,所以你只能校验加密后的字符串。
一、注册时,前端将密码md5加密后提交到后端保存到数据库。
二、登录时,前端将密码md5加密后提交到后端同数据库中按用户名查找出来的数据中的密码做对比。
你可以关注下 ITIL先锋这个微信公众号 上面每天会更新IT行业最前沿资讯知识和各种类别的IT资料 感觉工作学习都比较有用
解决方案3:只对密码进行矛盾md5加密,两次加密值做等值处理。
解决方案4:我们公司在做的时候,只对密码加密。 密码加密后只截取指定长度的字符串作为密码,
下次登录的时候,将输入的密码也截取指定长度和数据库的作比较,如果相同怎验证成功。
第一个问题:数据传输到服务器端,是每个数据分开加密的,加密后的密文保存到数据库,这样做的好处是别人即使得到了数据无法识别,保证了数据的安全,但我们一般加密数据是不用MD5的,因为MD5加密是不可逆的,比如手机号码加密了,那你系统怎么读取呢?再者MD5加密现在并不安全,已经可以破解。所以像这类信息我们一般采用DES对称加密或者RSA非对称加密,这样加密数据是可逆的,而且也比MD5加密要安全,可以去了解一下
第二个问题:如果你的密码是MD5加密的,那么你登录的时候,后台拿到前端得到的密码,就会把这个密码用MD5加密,然后再跟数据库的密文进行比较。如果你用的是可逆的加密,检验密码的方式可能不一样。
第三个问题:每个文件都有唯一的MD5校验码,如果MD5校验码对不上,说明不是这个文件。但像你说的这种情况,文件和MD5校验码都被人截取了,那有可能发生像你所说的,但一般发送文件是连续的数据流,一般情况下是比较难全部截取的,当然还有其他方法去提高安全性,比如加密传输等等