首页 > 代码库 > DES与按位异或结合产生随机的加密文本
DES与按位异或结合产生随机的加密文本
最近有需求需要在客户端存放一些加密后的数据,说到加密第一个想到的就是DES有现成的工具,直接调用就好。但是反复思考后感觉单靠DES加密太不安全,毕竟如果内容一样加密后的加密结果数据也是相同的,这样前端用户如果有心去做不断的碰撞测试,有很大的几率猜出密码。
解决这样的问题有很多方法,考虑将数据2次加密,但是如果2次加密用的密码固定就又等于回到原点,为了解决这个问题,想到了随机产生一个数字(比如当前毫秒+随机数),使用这个数字按位异或加密文本,密钥保存在文本末端。
加密过程
1、产生一个6位随机数
2、使用这个随机数按位异或加密需要加密的文本
3、加密用的随机数加到加密后的文本末尾(最后2个byte)
4、将异或后的文本末尾加上随机产生的密钥的文本,使用DES加密
这样每次加密因为产生的随机数是不同所以加密出来的文本也是不同,前端用户无法使用不断碰撞结果去猜测密钥
解密过程也相当的简单
1、使用DES解密
2、读取最后2byte数据获取加密随机数
3、使用加密随机数,按位异或返回原文本
DES与按位异或结合产生随机的加密文本
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。