首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于AngularJS和.net的密码加密技术及密钥安全传输

基于AngularJS和.net的密码加密技术及密钥安全传输
EN

Stack Overflow用户
提问于 2018-03-29 05:19:35
回答 1查看 1K关注 0票数 2

我有一个应用程序,它使用AngularJ1.5作为前端,使用.net框架作为后端。在我的应用程序中,我必须将用户名和密码存储在来自前端end.The需求的数据库中:

  1. AngularJs将加密密码并将其发送到后端。
  2. 在后端,加密的密码将存储在数据库中。
  3. 在后端代码中,有一个地方我们必须调用第三方web,并且必须传递用户名和解密形式的密码来进行身份验证。

简单地说,前端应该加密密码,后端应该有解密的能力。

我分析了许多安全处理密码的技术。

  1. 哈希:这是安全传输password.But的最好方法--问题是,我们不能将散列密码反转到它的原始form.According以满足我的要求,我必须将散列密码反转到它的原始形式,因为我们必须将原始形式的密码传递给第三方API。
  2. 对称算法使用相同的密钥进行解密和encryption.So,需要将密钥安全地共享到前端和后端。这不是一个好的方法,如果我们硬编码双方的关键价值。
  3. 非对称算法使用公钥和私钥来加密和解密respectively.So,我认为这比上面两个techniques.Since安全得多,一个拥有公钥的入侵者不能解密密码。

我刚开始使用AngularJS进行加密和解密处理。我的查询是关于密钥handling.How的,我们可以安全地将密钥存储在前端和后端,而不是硬编码在code.Is中,有什么安全的方法来共享这些keys.Which算法最适合我的需求吗?(根据我的分析,我发现不对称是满足这一要求的更好选择)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-04 09:06:42

不确定这是否仍然与你有关,但这是来了。这些都是相当高水平和广泛的问题,你正在问,所以我提供一些一般性的指导。

我肯定会对此使用非对称加密。我很可能会选择类似RSA OAEP的东西,它每次都会在相同的输入上产生不同的密码文本,这要归功于随机填充。这样,攻击者就不会从密码文本中学到那么多他能够拦截的信息。

密钥交换是一个更棘手的话题,因为你的最终用户软件很可能在浏览器中运行(是一个棱角分明的应用程序)。处理此问题的一种方法是将您的公钥封装在可以在浏览器中验证的证书中。

还有许多其他的攻击和方面你需要考虑。例如,如何保护您的系统免受重放攻击,以及如何在满足可用性要求的同时旋转您的密钥。这个答案中的所有主题都不可能太宽泛,所以我把它放在这里。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49548556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档