Nor*_*ard 4 encryption salt pkcs#5
我不知道如何在我的场景中使用"盐概念".
假设我有一个客户端桌面应用程序,它为特定用户加密数据并将其发送到远程服务器.客户端应用程序使用用户密码和SALT生成PKCS#5的密钥.远程桌面绝不能与用户的密码联系.
假设我们为加密生成随机盐.客户端应用程序可以加密数据,并将其发送到远程服务器.如果用户试图在另一台计算机上访问他的数据,那么它将如何解密它,因为盐是未知的?
我认为一直使用相同的盐(在应用程序中硬编码)并不是一个好主意(混淆的安全性很差).
我怎样才能解决我的问题?
盐与加密数据一起以未加密的方式存储.
salt的目的是防止攻击者预先计算加密密码字典.(如同攻击者花费一年或其他任何语言生成每个单词的加密形式.)
salt的另一个目的是确保两个用户具有不同的加密密码,即使他们的未加密密码是相同的.
这两种目的都没有要求盐保密.
[更新,详细说明]
请参阅Salt(密码学)的Wikipedia条目.特别是,请阅读介绍性段落.
salt的目的是获取非随机输入(例如,用户提供的数据)并使其在通过加密函数之前随机.为此,必须为每个输入随机生成盐.
传统的例子是存储加密密码.大多数用户可靠地选择非随机密码,因此如果没有盐,选择"SEKRIT"作为密码的每个人都将在密码DB中使用相同的加密密码.解决方案是在加密密码之前添加随机盐,然后将其与加密密码一起存储(以明文形式).
| 归档时间: |
|
| 查看次数: |
2937 次 |
| 最近记录: |