DES与按位异或结合产生随机的加密文本
来源:互联网 发布:painttool sai mac版 编辑:程序博客网 时间:2024/05/21 19:31
最近有需求需要在客户端存放一些加密后的数据,说到加密第一个想到的就是DES有现成的工具,直接调用就好。但是反复思考后感觉单靠DES加密太不安全,毕竟如果内容一样加密后的加密结果数据也是相同的,这样前端用户如果有心去做不断的碰撞测试,有很大的几率猜出密码。
解决这样的问题有很多方法,考虑将数据2次加密,但是如果2次加密用的密码固定就又等于回到原点,为了解决这个问题,想到了随机产生一个数字(比如当前毫秒+随机数),使用这个数字按位异或加密文本,密钥保存在文本末端。
加密过程
1、产生一个6位随机数
2、使用这个随机数按位异或加密需要加密的文本
3、加密用的随机数加到加密后的文本末尾(最后2个byte)
4、将异或后的文本末尾加上随机产生的密钥的文本,使用DES加密
这样每次加密因为产生的随机数是不同所以加密出来的文本也是不同,前端用户无法使用不断碰撞结果去猜测密钥
解密过程也相当的简单
1、使用DES解密
2、读取最后2byte数据获取加密随机数
3、使用加密随机数,按位异或返回原文本
0 0
- DES与按位异或结合产生随机的加密文本
- DES加密与位异或加密的比较分析
- 如何在 Linux 中产生、加密或解密随机密码
- 在Linux中产生加密或解密随机密码
- RSA - 与DES结合使用实现动态加密
- RSA - 与DES结合使用实现动态加密
- DES、RSA、MD5、SHA、随机生成加密与解密
- 文本动态随机加密
- DES加密---随机获取密匙加密
- 文本的DES加密 MD5散列值 DSA的数字签名
- 文本的DES加密 MD5散列值 DSA的数字签名
- (学习笔记)Java的3DES与DES加密实现
- Java与.NET的DES加密
- DES加密与解密算法的实现
- DES加密与解密的java实现
- DES的加密与解密(可逆)
- DES加密.net与java的纠缠
- iOS DES加密与3DES加密
- 如何制作中间实线 两头细线
- C++实现链式二叉树,操作包括初始化二叉树、前序遍历、中序遍历、后序遍历、层次遍历
- java实例之打印日期
- 读取总结
- 构造函数
- DES与按位异或结合产生随机的加密文本
- 用C#设计一个简单的人品计算器
- 分享45个android实例源码,很好很强大.收藏吧!!!
- CSS背景样式使用
- HDU 1671 字典树
- Objective-C之Foundation框架--数据存储
- .bashrc
- 从拷贝构造函数到内存管理
- RHEL7/CentOS7 Network Service开机无法启动的解决方法