我正在使用codeigniter框架在php中进行一些加密和解密。我正在使用这个库https://github.com/Dirktheman/rsa-codeigniter-library。我想做的就是生成这样的签名encrypt_method(value,private_key)
。
那将返回签名。然后,我想验证等于先前值或不解密的值(签名,previous_input,public_key)。我的问题是没有生成私钥和公钥的方法。用于生成签名。那么,如何使用PHP中的RSA库实现呢?
安全的RSA实现取决于将随机生成的大质数(例如,至少2048位!)用作私钥的一部分。但是,该库不使用大质数,甚至也不随机生成它们-它从570个预生成的四位数字数组中选择它们。这意味着只能生成大约162,000(570 * 569÷2)个可能的密钥。这足够少,您可以轻松生成所有可能的公共和私有密钥对的列表。
此外,该库在不适当的模式下使用RSA。通过将每组三个字母作为单独的独立消息进行加密,它可以“加密”和“解密”消息。这种方案是不安全的,因为可以对各个块进行编辑和重新排序以创建新消息。(例如,SEND JO $123
可以SEND JO $123123
通过重复最后一个块轻松地编辑一条加密的消息,说得很对!)更糟糕的是,如果知道一条消息的内容,就可以在另一条消息中从该第一条消息中搜索块,以恢复部件。其内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句