【发布时间】:2014-12-19 14:38:35
【问题描述】:
编辑
我正在尝试为公司开发密码管理工具。我的想法是某种数据库中的密码使用只有管理员拥有的主密码进行加密。
公司的每个部门都应该有一个自己的密码,该密码只允许该部门的用户访问他们的密码。
让我们看一个例子。
- A部
- 计费系统,密码:“你好”
- B部
- 邮件,密码:“世界”
密码使用管理员的主密码加密。让我们假设它是 0000。所以在数据库中会有这样的东西
- A部
- 计费系统,密码:encrypt("Hello",0000,'A')
- B部
- 邮件、密码:encrypt("World",0000,'B')
此外,A部门的密码是9999,B部门的密码是7777。现在我正在寻找一种可能性,用密码9999解密计费系统的密码,用7777解密邮件密码。但它应该无法用 9999 解密邮件密码,反之亦然。
- 计费系统:decrypt(encrypt("Hello",0000,'A'), 9999) = "Hello"
- 计费系统:decrypt(encrypt("Hello",0000,'A'), 7777) != "Hello"
- 邮件:decrypt(encrypt("World",0000,'B'), 9999) != "World"
- 邮件:decrypt(encrypt("World",0000,'B'), 7777) = "World"
这还不够难,管理员用户必须有可能用他的主密码 0000 解密任何密码
- 计费系统:decrypt(encrypt("Hello",0000,'A'), 0000) = "Hello"
- 邮件:解密(encrypt("World",0000,'B'), 0000) = "World"
我希望我的想法现在越来越清晰......
【问题讨论】:
-
您始终使用目的地的 public 密钥进行加密。然后只有私钥所有者才能解密。使用私钥加密仅对签名文档进行,当哈希摘要使用私钥加密并且任何人都可以使用公钥对其进行解密,从而验证签名。
-
嗯,是的,你是正确的标准非对称加密。也许在这里使用私钥和公钥很烦人...您对命名有更好的想法吗?
-
绝对不清楚您要做什么和题外话,而且这不会发展编程。你可以在加密上发帖,但只有当你可以使用某种标准符号来描述你的协议时,这个协议几乎会立即关闭。
-
是的,如果不向世界大声喊出我的想法,就很难描述我的想法/问题;)但我想否则没有人会理解我在寻找什么。所以我重写了文字...
-
你想要实现的已经实现为key hierarchy。
标签: encryption encoding public-key-encryption decoding encryption-asymmetric