2011-05-08 40 views
4

我想使用mcrypt的超过24个字符的盐。如何覆盖24个字符的mcrypt盐限制?

mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $salt, $text, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)); 

但是如果我做$盐超过24个字符,它抛出这个警告,并在24个字符采用截断盐:

警告:mcrypt_encrypt()[function.mcrypt-加密]:大小对于这种算法,密钥太大

有没有办法解决这个问题?

+0

你不应该“像”做的事情,都出了加密算法的内部运作。 – 2011-05-08 13:03:46

回答

3

24是这个算术的极限。超过24个字符的字符不被使用。但你可以随时转换你的盐。

http://en.wikipedia.org/wiki/Advanced_Encryption_Standard

+0

感谢您的信息。有没有一种替代的加密算法,mcrypt可以使用,你会建议? – 2011-05-08 16:28:33

+0

AES(又名RIJDAEL)是目前的加密标准。我认为这是最好的一个。 – Marcin 2011-05-08 20:42:57

0

我亲自MD5的盐和使用,否则你需要选择不同的算法。

+0

MD5超过24个字符,我想让140多个角色的盐让野蛮人逼得几乎不可能。 – 2011-05-08 16:27:59