2

これは簡単だと思ったのですが、これに対する簡単な解決策が見つかりません..

文字列をエンコードし、単純なパスフレーズで文字列をデコードする方法はありますか? このようなもの:

$encoded = stringEncrypt('someText','simpleKey');
echo stringDecrypt($encoded,'simpleKey'); //outputs someText;

私はこれを試しましたが、運がありませんでした:

function lime_encrypt($data,$key)
{
    return base_convert(bin2hex($data),16,10)  *   base_convert(bin2hex($key),16,10)  ;
}

function lime_decrypt($data,$key)
{
    return pack("H*",base_convert($data/base_convert(bin2hex($key),16,10),10,16));
}

これは、乗算が整数ではなく数式を返すためだと思います 6.28414834514E+25

これをどのように実装できるか考えていますか?


編集

スタックオーバーフローで見つけた別のコードを再利用したところ、次のようになりました。

function lime_encrypt($data,$key)
{
    return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $data, MCRYPT_MODE_CBC, md5(md5($key))));
}

function lime_decrypt($data,$key)
{
    return rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($data), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
}

しかし、私は Fatal error: Call to undefined function mcrypt_encrypt() using php > 5 on linux centOS で終わります。

だから私はむしろシンプルで他のホスティングに移動したい...


解決?

最後に、ブログで見つけたこれを使用しています:

function lime_encrypt($data,$key)
{
    return openssl_encrypt($data, 'AES-128-CBC', $key,0,'fgrgfvcfghtfdrfg');
}

function lime_decrypt($data,$key)
{
    return openssl_decrypt($data, 'AES-128-CBC', $key,0,'fgrgfvcfghtfdrfg');
}
4

1 に答える 1