我希望允许我的站点上的用户创建一个非对称的私钥和公钥,这样他们就可以:
我的问题是,如果用户机器死了,那么他们很可能会丢失私钥。
我的概念是,应用程序,用户下载从网站上提取的文件,也将允许他们生成密钥,供网站使用。
所以我的问题是,是否有可能根据密码创建非对称的私钥对?这将允许用户在需要时重新生成私钥。
发布于 2013-07-10 16:28:50
一种完全按照你的要求行事的方法是:
这个过程应该决定性地生成一个公共/私有RSA密钥对。然而,不这样做的原因是:
完成你想要做的事情的一个更好的方法是:
这样做更好,因为:
这解决了您的问题:
当然,也有一些明显的警告,比如,如果用户忘记了他们的密码,所有的数据都会被锁定,直到公开知道如何破解RSA,或者将10亿年的当前计算能力用于破解他们的密码;-) (当然,这取决于N和密钥大小)。此外,盐对于防止字典攻击也很重要。
发布于 2013-03-04 15:38:15
您的算法(例如RSA http://msdn.microsoft.com/en-us/library/system.security.cryptography.rsaparameters.aspx)的字段多少取决于您。您可以很容易地创建一个算法,从某个字符串生成D和P(从这些字符串中计算其他RSA字段)。不过,我真的建议您不要从StackOverflow上的答案中挑出一个(这只会给想要获取数据的人一些容易尝试的东西)。
像RSA这样的算法之所以很难打破,是因为在基于加密数据的私钥/公钥逆向工程方面付出了大量的努力。如果您介绍一种“快捷方式”,比如基于密码的可重复生成算法,那么系统的安全性现在取决于密码的保密程度,而不是加密算法本身。
私钥也是如此;这就是为什么许多组织不将私钥存储在硬盘上,而是存储在受密码或某些生物识别信息保护的安全外部设备上。
我建议您不要从密码生成密钥,只需使用推荐的方法来存储和保护私钥。
https://stackoverflow.com/questions/15203788
复制相似问题