如何在Codeigniter RSA库中生成签名和密钥

Wai*_*ein 3 php encryption codeigniter rsa

我正在使用codeigniter框架在php中进行一些加密和解密.我正在使用这个库https://github.com/Dirktheman/rsa-codeigniter-library.我想要做的是生成一个像这样的enctypt_method(value,private_key)的签名.那将返回签名.然后我要验证等于out先前值或不解密的值(signature,previous_input,public_key).我的问题是没有生成私钥和公钥的方法.用于生成签名.那么请问如何在php中使用RSA库来实现它.

dus*_*uff 41

不要使用该库.这是完全不安全的.

安全的RSA实现取决于使用随机生成的质数(例如,至少2048位!)作为​​私钥的一部分.但是,这个库不使用大素数,也不会随机生成它们 - 它从570个预生成的四位数字数组中选取它们.这意味着只能生成大约162,000(570*569÷2)个可能的密钥; 这足够少,您可以轻松生成所有可能的公钥和私钥对的列表.

此外,此库正在以不适当的模式使用RSA.它通过将每组三个字母加密为单独的独立消息来"加密"和"解密"消息.此方案不安全,因为可以编辑和重新排序各个块以创建新消息.(例如,一条加密的消息,SEND JO $123可以SEND JO $123123通过重复最后一个块轻松编辑说出来!)更糟糕的是,如果一条消息的内容已知,则可以从另一条消息中的第一条消息中搜索块以恢复部分其内容.

  • 这里提到的图书馆的作者......对不起!几年前我写这篇文章作为练习.我不会在现场网站上实现它,因为它完全不安全.我会尽快将它从GitHub中删除. (31认同)
  • @DirkdeMan谢谢,虽然看起来很多人已经在使用它了.:( https://github.com/search?q=rsa+%2B+%24primes+%3D+array%284507&type=Code (2认同)