PHP mcrypt_加密差异还是相同的代码?

PHP mcrypt_加密差异还是相同的代码?,php,encryption,mcrypt,Php,Encryption,Mcrypt,所以我在PHP中使用mcrypt_encrypt对进入数据库的一些数据进行加密 看起来,它之前加密的值现在不同于它现在加密(用于检查)的值 例如 1234最初被加密为4321并放入数据库 1234现在再次被加密,我希望它加密到4321,这样它就可以匹配数据库中的加密。除此之外,1234现在被加密为2314,因此它在数据库中找不到4321 加密的函数完全相同,并且没有更改。盐是一样的 是否有任何原因导致以下内容在不同时间返回不同的结果 trim(base64_encode(mcrypt_encry

所以我在PHP中使用mcrypt_encrypt对进入数据库的一些数据进行加密

看起来,它之前加密的值现在不同于它现在加密(用于检查)的值

例如

1234最初被加密为4321并放入数据库

1234现在再次被加密,我希望它加密到4321,这样它就可以匹配数据库中的加密。除此之外,1234现在被加密为2314,因此它在数据库中找不到4321

加密的函数完全相同,并且没有更改。盐是一样的

是否有任何原因导致以下内容在不同时间返回不同的结果

trim(base64_encode(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))));

我可以补充一点,不管它被加密到什么地方,它们实际上都会正确地解密到相同的原始值。但这无助于检查数据库中的(加密)值。

请显示实际的明文/加密示例,而不是一些想象中的数字。对不起,我不能在公共网站上发布私人用户数据。我能说的就是一封电子邮件,比如“测试”。email@test.com'正在被加密为两个不同的值。第一个是“VTYYVREbi8RdlEWtfxFBQg6Y0AGsg4h8NeQAJNKKREI=”。它将在一段时间内返回相同的值,然后在某个地方(我现在不能给出时间线)开始返回不同的值。此代码不能为同一明文生成两个不同的密文,因为ECB模式不是随机的(IV部分完全不需要)。我怀疑编码有问题。这就是为什么我要问实际的例子。或者,您可以描述这两种密文的区别。它们是否完全不同,或者只是在开始或结束时有所不同?我将使用不同的字符串编码进行一些测试,看看这是否给出了我看到的结果。非常感谢你的提示。好的,两件事:1。这是一个糟糕的加密实现;请注意使用,或。2.Artjom B.是正确的;欧洲央行模式根本不是随机化的。