2016-09-26 11 views
0

私はmcryptを使ってクレジットカード番号をテーブルに保存しています。また、同じクレジットカード番号を使用して、ユーザーがすでにクーポンコードを適用しているかどうかを確認しています。変更されないmycryptモードはありますか?

私が直面している問題は、ユーザーがチェックアウトページにクレジットカード番号を掲示すると、mcrypt文字列が常に変更されることです。

毎回文字列を変更しないmcryptメソッドはありますか?

ちなみに、私は任意の助けが本当に

+0

それはmcryptのを使用するのが最善ではありません数年で更新されておらず、標準PKCS#7(néePKCS#5)パディング、バイナリデータでも使用できない非標準のヌルパディングだけをサポートしていません。 mcryptには、2003年にさかのぼる多くの傑出したバグ(https://sourceforge.net/p/mcrypt/bugs/)がありました。代わりに[defuse](https://github.com/defuse/php-encryption)の使用を検討するか、 [RNCryptor](https://github.com/RNCryptor)、これらは完全な解決策を提供し、維持管理され、正しいものです。 – zaph

+0

PayPal、Stripe、AuthorizeNetなどのサードパーティサービスを使用してクレジットカードで遊んではいけません。完全停止。 – Tpojka

答えて

3

お知らせappricatedことになるクレジットカード番号を暗号化するために

をCodeIgniterの暗号化クラスを使用しています:クレジットカードのデータを提供 を推奨されません保存し、処理をセキュリティと暗号化についてほとんど知りません

使用する機能は異なる文字列を出力しますが、入力がインテンシアルであった場合はチェックします。

それは「同じ文字列」毎回を返す関数に来るとき、あなたはハッシュ関数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

+1

**最初に、私は1000%がOPが機密データを取り扱ったり保存したりしてはならないことに同意します**シンプルなSHA256でハッシュ化された16文字のパスワードを扱うのは簡単ではありません。桁数字。この恐ろしい努力を続けるつもりなら、少なくとも 'password_hash()'](http://php.net/manual/en/function.password-hash.php)のような安全性の高いハッシングメソッドを使用する必要があります。 。 – Sammitch

関連する問題