我正在使用mcrypt将信用卡号码存储在表中。我也使用相同的信用卡号码来检查用户是否已经应用了优惠券代码。是否有不加改变的mycrypt模式?
我面临的问题是,当用户在结帐页上发布他们的信用卡号码时,mcrypt字符串总是会更改。
是否有一个mcrypt方法不会每次都更改字符串?
顺便说一句,我使用CodeIgniter的加密类到加密的信用卡号码
任何帮助将是非常appricated
我正在使用mcrypt将信用卡号码存储在表中。我也使用相同的信用卡号码来检查用户是否已经应用了优惠券代码。是否有不加改变的mycrypt模式?
我面临的问题是,当用户在结帐页上发布他们的信用卡号码时,mcrypt字符串总是会更改。
是否有一个mcrypt方法不会每次都更改字符串?
顺便说一句,我使用CodeIgniter的加密类到加密的信用卡号码
任何帮助将是非常appricated
注意:存储和处理信用卡数据,不建议 提供你对安全和加密知之甚少
你正在使用的函数输出不同的字符串,但你可以如果输入是固定的,请检查它们。
当谈到返回功能“相同的字符串”每次,你可以使用SHA256散列函数:
<?php
$string = "123";
$hash = hash('sha256', $string);
$user_input = "123";
if(hash('sha256', $user_input) == $hash){
echo "Correct credit card number";
} else {
echo "Did not find a match";
}
?>
了解更多关于散列()方法here
**首先,我1000%同意OP不应该处理或存储敏感数据。**使用简单的SHA256对强制性16位字符密码进行散列几乎是微不足道的,而且它将轻松实现16位密码,数字号码。如果我们要坚持这种可怕的努力,我们至少应该使用['password_hash()'](http://php.net/manual/en/function.password-hash.php)等合理安全的哈希方法。 。 – Sammitch
最好不要使用mcrypt的,这是放弃的,并没有被更新,并且不支持标准的PKCS#7(néePKCS#5)填充,只有非标准的null填充甚至不能用于二进制数据。 mcrypt有很多优秀的[bug](https://sourceforge.net/p/mcrypt/bugs/)可以追溯到2003年。相反,考虑使用[defuse](https://github.com/defuse/php-encryption)或者[RNCryptor](https://github.com/RNCryptor),他们提供了一个完整的解决方案,并且正在维护和正确。 – zaph
请勿使用信用卡,使用PayPal,Stripe或AuthorizeNet等第三方服务。句号。 – Tpojka