rsa 与加密机

来源:互联网 发布:厦门淘宝客服工资 编辑:程序博客网 时间:2024/05/10 17:25

rsa 加密算法分为公钥与私钥。用公钥对明文加密,密钥进行解密。

公钥即是 RSA 算法里面的 N 和 E,私钥即是 N 和 E。可以看这篇文章详细了解。

由于 RSA 算法运用于很多产品,很多场景,因此,公钥可能是文本文件的形式,字符串形式,BASE64 变换形式等等多种形式。一般最多的形式是:

大整数 N 的 16 进制,512 位(假定是 512 位的 RSA 算法)

以上,我们拿到公钥后,需要知道它的格式,才能用于加密或解密。


业界,公司解决 客户消费/登录时 密码验证 的方案比较多是加密机。加密机是一种专门用于加解密的机器。里面固化了一些算法,如 DES,RSA 等。使用加密机的好处是,业务系统中不会具有解密的能力,也不留下任何明文密码的痕迹。

设密的原理是,指定一个 rsa 组,对传入的rsa 密文进行解密得到明文,之后再通过传入的 des 组,

生成一个随机的盐,对明文进行加密,最终得到密文(二次密文)和盐的密文,作为设密的返回。

解密时,同样需要指定 rsa 组,随机盐的des 组,以及待验证的密文,解密得到二次密文,作为解密的输出。

应用通过比较上面两个流程产生的二次密文,得知校验结果。

这种模式的好处是,应用不知道密钥,不可能会在应用中解密。设置和解密的过程在专有的系统中做,起到了黑盒的作用。

更多的细节:

采用 pkcs 的填充方式,即使对同样的明文使用同样的公钥加密,得到的密文也不一样。该填充方式使用随机但可还原的方式填充。

随机因子:每次设密,解密都可以使用一个随机因子来提高安全性。在对应的一组设密,解密的操作中,两次的随机因子不一样,不会影响校验的结果。因为两次操作都会传入一个随机因子。随机因子被直接附在明文后面再 RSA 加密使用。

使用此接口需要找 eccs 管理人员分配sysid 和 appid,rsa 组 (以索引名给出), des 组(以索引名给出)

 

注意设密时,返回的 shal 即是公钥,格式是16进制的 512 位数据。返回的 pinFactor 也是16进制的。也即 RSA 算法的 N 值即是上面的 512位的公钥,E 值是 010001(16进制)。

pinFactor 和 cfyz 都是十六进制数据


原创粉丝点击