![](/img/trans.png)
[英]what's the best place to save encryption public and private keys in a laravel server
[英]Encryption using public/private keys between mobile client and server PHP
情况1:从客户端到服务器的加密数据
需要在服务器中创建一个公钥/私钥。提供给客户端的公钥。客户端使用公钥对其进行加密。服务器使用生成的私钥对其进行解密。
情况2:但是,当服务器中的数据发送到客户端时,情况又如何呢?
该数据也应该被加密。是否为案例1的工作创建了相同的公共/私人或新密钥?有人可以为我的要求解释案例2。
提前致谢。
如本白皮书中有关安全数据加密及其支持材料所述:
密钥生成
$bob_box_kp = \Sodium\crypto_box_keypair();
$bob_box_secretkey = \Sodium\crypto_box_secretkey($bob_box_kp);
$bob_box_publickey = \Sodium\crypto_box_publickey($bob_box_kp);
加密
$anonymous_message_to_bob = \Sodium\crypto_box_seal(
$message,
$bob_box_publickey
);
解密
$decrypted_message = \Sodium\crypto_box_seal_open(
$anonymous_message_to_bob,
$bob_box_kp
);
if ($decrypted_message === false) {
// You have the wrong keypair or the message was tampered with.
}
密钥生成
byte[] secret_key = new byte[Box.SECRETKEYBYTES];
byte[] public_key = new byte[Box.PUBLICKEYBYTES];
Box.keypair(public_key, secret_key);
加密
Box.seal(
ciphertextByteArray, // Output goes here
plaintextByteArray, // Your message
public_key
);
解密
Box.sealOpen(
plaintextOutputByteArray, // Decrypted data goes here
ciphertextByteArray, // Encrypted message received over the wire
public_key,
secret_key
);
您可以在任何方向上使用公钥/私钥加密。
因此,您的客户端可以使用公钥加密,然后服务器可以使用私钥解密。 如果您的服务器使用私钥加密,则客户端可以使用公钥解密。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.