使用加密数据传输加密密钥

问题描述 投票:0回答:1

我正在使用 jCryption.NET 来加密登录表单,我很好奇它的功能以及它是否安全或错误的方法。

该库使用RSA进行加密。如果我没记错的话,它首先与后端进行握手,获取生成的值,创建密钥,并使用该密钥来加密值。然后,生成的密钥与加密值一起发送到后端,后端代码使用该密钥进行解密。

这种方法安全吗?我不是安全专家,所以我不确定将密钥与有效负载一起发送是否是个好主意。

security encryption encryption-asymmetric jcryption
1个回答
0
投票

使用的密钥实际上是加密的,因此如果您在握手期间阅读源代码,它会解密密钥并将其存储在会话中。

 var key = Convert.FromBase64String(Request.Form["key"]);
 var keyDecrypted = cryptoProvider.Decrypt(key, false);
 Session[SessionKeyStoreKey] = keyDecrypted;

当然,这是您在典型企业应用程序中不会使用的东西,但正如它所提到的,通常对于某些用例,您无法选择通过 HTTPS 提供页面,并且希望在数据上设置一些安全层,然后使用 JCryption适合你。

我的建议是评估业务案例,然后做出决定。

© www.soinside.com 2019 - 2024. All rights reserved.