可以自己编写RSA加解密程序吗?宝子们,技术上可以的,原则上必须的。
以目前常用2048位密钥为例,用64位CPU的普通程序跑的话,为了防止单次计算溢出,我们只能用到其中32位。2048除以32, 所以我们需要使用一个长度为64的长整型数组。为了避免整体运算溢出,实际使用的数组长度与RSA算法中的n有关,这样起来,这个数组长度可能就来到128或者256了。数的表达方式有了后,小心翼翼地设计和验证算法就可以了。这种算法容易实现,但效率比较低。可以让精通CPU计算架构和汇编的朋友优化一下算法,看能否一次性使用多个CPU的计算单元。
RSA算法的一大难度是找大素数。如果是自己写算法,在一般服务器上跑的话,运行程序后就可以离开去睡觉了,隔天看一次进度就可以了。所以RSA算法要能实用,必须有一个大素数的库供选用。
还有一个需要注意的,全球数亿级的计算终端,如果都用自己写的程序,有比较大的概率会出现密钥重叠,这样安全性就打折扣了,所以,需要有一个组织来管理密钥的生成和分配。
如此的困难重重,更何况现在所有的浏览器、操作系统都带了相关的软件,直接使用就可以了,方便又快捷。