4

私たちのWebアプリケーション(PHP、MySQL)の1つでは、ユーザーの携帯電話番号を暗号化された値として保存し、SMSを送信するときにそれを復号化しています。アプリケーションはかなりうまく機能していました。しかし

GoDaddy はオプション base64_encode と decode を削除しました。そのため、ユーザーに SMS を送信できません。そのため、携帯電話番号をローカルで実行している通常の状態に戻します。

私の質問は、キーを使用して文字列を暗号化および復号化する最も簡単で安全な方法はどれかということです。

何かのようなもの

Normal string : 9876543210  -> After encrypt with a key -> AASASOOPFPOEROP45664654456
Encrypted string : AASASOOPFPOEROP45664654456 -> on decrypt -> 9876543210 

私の現在のコード

function encodeString($str){
  for($i=0; $i<5;$i++)
  {
    $str=strrev(base64_encode($str)); //apply base64 first and then reverse the string
  }
  return $str;
}


function decodeString($str){
 for($i=0; $i<5;$i++)
 {
    $str=base64_decode(strrev($str)); //apply base64 first and then reverse the string}
 }
 return $str;
}

私を助けてください 。前もって感謝します

4

2 に答える 2

4

base64 エンコード/デコードを使用していた場合、データを暗号化するのではなく、難読化するだけです。

Godaddy が有効にした php 拡張機能がわからないので、phpSecLib のようなものを使用することをお勧めします。

http://phpseclib.sourceforge.net/

これは、スクリプトに含めることができるスタンドアロンの実装であり、データの実際の暗号化を提供します。AES または Rijndael は、アプリケーションの find で動作するはずです

基本的に、文字列をキーで暗号化します。データベースが侵害された場合でも、暗号化に使用したキー (スクリプトにハードコードする) がないとデータを復号化できません。これは、単純にエンコードするのとは異なります。この場合、誰かがデータベースを入手した場合、最初の文字列をさまざまなエンコード方法で実行して、機能する方法が見つかるまでデコードできます。そして、残りを同じデコード方法で実行します

于 2013-06-19T04:23:58.757 に答える