加密算法小结

2017-03-03  本文已影响0人  Jarvan89

起因

因为公司需要对私有云产品做一些限制,需要生成 license 对系统进行限制,研究了一些加密算法,自己摸索了一套 license 生成流程。今天总结一下。###

算法认识:

算法类型

数据的加密算法可以分为两大类:

比较特殊的事这种 MD5 这类加密算法,这个可以说是对称加密算法,但是严格的来说,MD5 没有解密的方法,应该叫做数据摘要算法。

数据摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密。数据摘要算法也被称为哈希(Hash)算法、散列算法。

常见算法:

总结:

具体算法实现数学公式,没有详细了解有兴趣的可以谷歌相应的算法实现。
鱼与熊掌不能兼得,毕竟两种算法体系的存在是有原因的,对称速度快,安全性低,非对称速度慢,安全性高,中间的速度最多能差上1000倍。
因为我们是 license 所以不要求这么多,够安全就行。
生成 license 过程:
1、对 license 进行一次 DES 对称加密
2、我们生成一对公私钥,给用户生成一对公私钥
3、我们用用户的公钥对加密数据进行二次加密。
4、我们用我们的私钥对二次加密的数据进行签名
服务验证过程:
提供给用户融云的公钥、客户的私钥、加密后的 license 数据、签名数据
1、拿融云的公钥、加密后的 license 数据、签名数据进行签名验证
2、验证通过用客户的私钥对数据解密
3、DES 解密(key 写死在代码里)
4、解析 license 数据,对程序做限制
这应该是最大限度的保证license的安全,但是,如果不对代码做混淆的话,用户一旦读懂源码,还是可以绕过我们的验证的,这个基本无解
后面一章把代码贴出来。

上一篇 下一篇

猜你喜欢

热点阅读