2012-02-01 14 views
-1

小さなプライベートアプリを構築する必要があります。私は、それを「暗号化」するテーブルに個人識別可能な情報(SSNやスーパーセンシティブなものではない内部アカウント番号)を保存したいと考えています。誰かが物理的にテーブルのデータを見た場合の情報の一部が 暗号化のためのMySQLの列

  • 認識できないということな方法で保存された

    • :私は次のようにデータが格納されることを望むので

      私は引用符で暗号化を置きます誰かが単純なクエリが結果のデータ出力を選択しなかった場合、私は私自身のクエリのSELECT文を書くとき、私はまだデータを復号化し、読みやすい形でそれを提示することができます

    • まだ認識していなくはないような方法で保存された

    言い換えれば、私はそれを暗号化して適度に暗号化して、それを解読して読むことができるようにしたい。私はMD5のハッシングがこれまでの価値をロックしていることを知っています。私はそれよりも少ないものを欲しい。

    ありがとうございました

  • +0

    可能重複MySQLのテーブルの列?](http://stackoverflow.com/questions/4275882/how-to-encrypt-a-specific-column-in-a-mysql-table) – ataylor

    答えて

    3

    MD5はNOTです。それはハッシュです。あなたは、各クエリで周りの暗号鍵を渡してもかまわない場合

    、それは、MySQLでこれを持っている些細です:

    SELECT AES_DECRYPT(crypted_field, 'crypt key goes here') AS decrypted 
    

    および特定の暗号化する方法[の

    INSERT INTO yourtable (crypted) VALUES (AES_ENCRYPT('some string', 'crypt key')); 
    
    +0

    ありがとう@MarcB。コードスニペットに感謝します。 –

    2

    私はあなたが探しているものは "対称キー暗号化"だと思います。キーを使用してデータを暗号化し、必要に応じて同じキーを復号化することができます(ハッシュ関数とは対照的に、元のデータは回復不能になります)。 MySQLでは、AES_Encrypt and AES_Decrypt functions.を見ていきます。うまくいけば、それはあなたが正しい方向を指すようになります!

    +0

    それを入手しました。ありがとう@thecoffman。 –

    2

    MySQLは、DES and AES encryptionの両方を提供します。鍵管理を把握する必要がありますが、暗号化アルゴリズムは利用可能です。

    +0

    入手しました。ありがとう@andand。 –

    関連する問題