加密/解密json字符串的最佳方法是什么?

Ste*_*eve 8 php mysql json

我有一个运行mysql和php的web服务器,它将数据发送到json字符串.

我有第二个网络服务器,它读取数据然后显示它.

一切都运转良好.

我需要在字符串中添加一些敏感数据,所以我想知道使用php加密/解密json的最佳方法是什么?

有人可以帮忙!?

rom*_*omo 14

我一直很喜欢MCRYPT

//Key
$key = 'SuperSecretKey';

//To Encrypt:
$encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, 'I want to encrypt this', MCRYPT_MODE_ECB);

//To Decrypt:
$decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $encrypted, MCRYPT_MODE_ECB);
Run Code Online (Sandbox Code Playgroud)

如果这是你正在寻找的东西.它会将JSON视为一个字符串,然后在你解密它之后,你将不得不做你json_decode()或你正在做的任何事情.


ale*_*lin 9

我敢打赌最好的方法是使用SSL(HTTPS),我建议你阅读OWASP指南,特别是How-To部分.


小智 5

这实际上取决于数据的敏感程度.但根据我的经验,简单的PHP加密通常可以解决问题.我通常会在将json数据字段编码为json字符串之前对其进行加密.

这是加密部分的代码.

$ key ='密码到(en/de)crypt'; $ string ='要加密的字符串'; //注意空格

要加密:

$encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));
Run Code Online (Sandbox Code Playgroud)

要解密:

$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
Run Code Online (Sandbox Code Playgroud)

但是,您应始终散列(MD5,SHA1)密码,最好使用一些盐.