我有一个运行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()或你正在做的任何事情.
小智 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)密码,最好使用一些盐.