Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Codeigniter RSA库中生成签名和密钥_Php_Codeigniter_Encryption_Rsa - Fatal编程技术网

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

Php 如何在Codeigniter RSA库中生成签名和密钥,php,codeigniter,encryption,rsa,Php,Codeigniter,Encryption,Rsa,我正在使用codeigniter框架在php中进行加密和解密。我正在使用这个图书馆。我想做的是生成这样的签名encrypt\u方法(值、私钥) 这将返回签名。然后我想验证值是否等于out previous value或不解密(签名、previous\u输入、公钥)。我的问题是没有生成私钥和公钥的方法。用于生成签名。那么,如何在PHP中使用RSA库实现它呢?不要使用该库。这是完全不安全的。 安全的RSA实现依赖于使用随机生成的大素数(例如,至少2048位!)作为私钥的一部分。然而,这个库不使用大素

我正在使用codeigniter框架在php中进行加密和解密。我正在使用这个图书馆。我想做的是生成这样的签名
encrypt\u方法(值、私钥)

这将返回签名。然后我想验证值是否等于out previous value或不解密(签名、previous\u输入、公钥)。我的问题是没有生成私钥和公钥的方法。用于生成签名。那么,如何在PHP中使用RSA库实现它呢?

不要使用该库。这是完全不安全的。 安全的RSA实现依赖于使用随机生成的大素数(例如,至少2048位!)作为私钥的一部分。然而,这个库不使用大素数,甚至不随机生成它们。这意味着只能生成大约162000(570*569÷2)个可能的密钥;这足够少,您可以轻松生成所有可能的公钥和私钥对的列表


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

Rsa类具有
生成密钥
功能,但它是(“随机”选择2个四位素数)。这基本上是混淆,不应使用。如果您想在PHP中使用RSA功能,只需使用phpseclib。请务必注意,它所基于的2002年的HackerHunter RSA实现也是不安全的,原因与此相同。感谢您指出这一点。为了进一步强调这一点,任何对RSA的工作原理稍有了解的人都可以使用一张纸和一个袖珍计算器来破解用该库加密的消息。。。我很抱歉!几年前我写这篇文章是为了锻炼身体。我不会在一个实时的网站上实现它,因为它是完全不安全的。我会尽快将它从GitHub中删除。@DirkdeMan谢谢,尽管看起来很多人已经在使用它了(谢谢你的解释。那么这已经死了吗?@Dashwuff-看看这些搜索结果,可以肯定地说,使用类似素数数组的20个文件可能不是从这个库中获得的,因为它们大多都比较旧。正如上面Henk Poley提到的,零号患者似乎早在2002年就是黑客猎人。