问题标签 [password-encryption]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 使用 Spring/Hibernate 进行密码加密 - Jasypt 还是其他?
在数据访问层中使用 Spring 和 Hibernate (JPA) 的 Java 应用程序堆栈中,应用密码加密的好方法是什么(希望使用注释),您在哪里可以找到有关完成它的更多信息(教程等)?
据了解,我将使用JCA支持的算法来加密密码,但如果有简单的方法,我宁愿不必实现包装器逻辑。
我在看Jasypt,并且a)想知道这是否是一个好的选择以及如何去做,b)人们还在为此使用什么。如果有人在使用 Jasypt 或替代方案,请详细说明您的体验,那就太好了。
security - 双哈希安全
我的第一个问题是,我听说过两次散列字符串(例如 sha1(sha1(password)) ),因为第二个散列具有固定长度,是真的吗?
我的第二个问题是,哪个更安全?(var1 和 var2 是 2 个字符串):
- sha1(var1 + sha1(var2))
- sha1(var1 + var2)
如果是第一个,是否值得付出性能成本?
php - 最佳实践:将密码存储在表中的最安全方法?
我正在使用 PHP。我曾经使用原生 mysql 函数 password() 来存储密码。有人告诉我 password() 不再安全了。在 PHP 中存储密码的最佳方法是什么?是MD5吗?
security - 我应该如何以合乎道德的方式处理用户密码存储以便以后进行明文检索?
随着我继续构建越来越多的网站和 Web 应用程序,我经常被要求以一种在用户遇到问题时可以检索到的方式存储用户的密码(或者通过电子邮件发送忘记的密码链接,通过电话等)我什么时候可以激烈地反对这种做法,我会做很多“额外的”编程来使密码重置和管理协助成为可能,而无需存储他们的实际密码。
当我无法对抗(或无法获胜)时,我总是以某种方式对密码进行编码,以便它至少不会以明文形式存储在数据库中——尽管我知道如果我的数据库被黑客入侵破解密码的罪魁祸首不会花太多时间,所以这让我很不舒服。
在一个完美的世界里,人们会经常更新密码,而不是在许多不同的网站上重复密码——不幸的是,我认识很多人拥有相同的工作/家庭/电子邮件/银行密码,甚至在他们需要帮助时免费提供给我。如果我的数据库安全程序由于某种原因失败,我不想成为他们财务死亡的责任人。
在道德和伦理上,我觉得有责任保护一些用户的生计,即使他们对待它的尊重要少得多。我确信有很多方法可以解决哈希哈希和不同的编码选项,但是当你必须存储它们时是否有一个单一的“最佳实践”?在几乎所有情况下,如果这对我处理细节的方式有任何影响,我都会使用 PHP 和 MySQL。
赏金的附加信息
我想澄清一下,我知道这不是您必须要做的事情,而且在大多数情况下拒绝这样做是最好的。然而,我并不是在寻找关于采用这种方法的优点的讲座,我正在寻找如果你采用这种方法的最佳步骤。
在下面的注释中,我指出主要面向老年人、智障或非常年轻的网站在被要求执行安全密码恢复程序时可能会让人们感到困惑。尽管在这些情况下我们可能会发现它简单而平凡,但某些用户需要额外的帮助,即让服务技术帮助他们进入系统或直接通过电子邮件发送/显示给他们。
在这样的系统中,如果用户没有获得这种级别的访问帮助,这些人口统计数据的流失率可能会阻碍应用程序,因此请记住这样的设置来回答。
谢谢大家
这是一个有趣的问题,有很多争论,我很喜欢。最后,我选择了一个既保留密码安全性(我不必保留纯文本或可恢复密码)的答案,又使我指定的用户群可以登录系统而没有我发现的主要缺点正常密码恢复。
与往常一样,出于不同的原因,我希望将大约 5 个答案标记为正确,但我必须选择最好的一个——其余的都得到了 +1。谢谢大家!
另外,感谢 Stack 社区中为这个问题投票和/或将其标记为收藏的每个人。我将获得 100 票赞成作为一种恭维,并希望这次讨论能够帮助与我有同样担忧的其他人。
c# - C# HMAC 实现
我希望我的应用程序加密用户密码,并且有一次密码将被解密以发送到服务器进行身份验证。一位朋友建议我使用 HMAC。我在 C# 中编写了以下代码:
如何解码密码(在这种情况下为 resultSTR)?
php - 存储可解密密码的安全方法
我正在用 PHP 制作一个应用程序,并且要求必须可以解密密码,以避免将来将用户数据库切换到不同的系统时出现问题。考虑到无法修改这个未来系统的密码方法,我需要纯文本密码才能生成密码。
计划是使用存储在服务器上的公钥加密用户的密码。身份验证是通过加密输入和比较结果来完成的。没有完成解密。能够解密的私钥存储在异地以供以后使用。
你会建议什么加密/解密算法?当您认为攻击者无法使用私钥时,加密密码是否仍与散列 (MD5/SHA1) 一样安全?
java - 在spring xml文件中隐藏数据源密码
有一种方法可以在 xml spring 配置文件中隐藏/加密密码吗?我读到使用 DataSource 的“自定义”子类可以做到这一点,但是解决方案将密钥作为纯文本保存在相同的配置文件中......所以有点没用。
有办法为此使用 KeyStore 吗?例如从密钥库中读取值。
谢谢大家。
vb.net - VB.NET:密码加密
将 VB.NET 站点升级为使用加密密码的最简单方法是什么?System.UI 中是否内置了易于使用的加密算法?
我的网站使用纯文本密码存储,它很快就会从本地网络上的私人服务器转到 Godaddy 的公共服务器。我将不得不开始在所有密码解析函数中添加加密算法,如果我可以在 web.config 文件中设置一个 SALT 密钥和 Encrypt(password) 或类似的东西,那就太好了。
encryption - 盐和散列,为什么不使用用户名?
我必须承认,我对与 Web 应用程序相关的大多数高科技安全问题基本上一无所知,但我至少认为我可以问一件事,因为这是一个(希望)有具体答案的直接问题。
拿这个网站:http ://www.15seconds.com/issue/000217.htm
它表明他们将盐值存储在表中,我了解使用盐背后的原理和数学,但我想知道这一点:
为什么他们不只是使用用户名作为盐值而不是生成一个?
asp.net - 加密 Web.config 并安装
我是加密过程的新手,曾尝试将加密的 web.config 文件安装到托管公司的服务器上,但未成功。我正在使用 Microsoft Visual Web Developer 2010 Express。
我已按照演练中的步骤进行操作:多次使用受保护的加密配置信息。
请注意关于演练,我的 web.config 文件中没有任何 machineKey,因此我跳过了该加密步骤。
当我运行 aspnet_regiis -pef connectionStrings "c:\Users......\mywebsite.com"
返回是:加密配置部分...成功!
2)然后我 FTP 我的 web.config 文件,站点收到以下错误:注意:第 8 行突出显示)
“/”应用程序中的服务器错误。
配置错误描述:处理服务此请求所需的配置文件期间发生错误。请查看下面的具体错误详细信息并适当地修改您的配置文件。
解析器错误消息:无法使用提供程序“RsaProtectedConfigurationProvider”解密。来自提供商的错误消息:错误数据。
源错误:
第 6 行: 第 7 行: 第 8 行: 第 10 行:
源文件:C:\HostingSpaces*username**mywebsite.com*\wwwroot\web.config 行:8
版本信息:Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.0.30319.1
我知道肯定少了一些东西,但我已经搜索过,但没有找到任何东西。我给托管公司发了电子邮件,询问他们是否需要对网站进行加密,但他们还没有回复。
我期望的是有一个密钥存在于其他地方,它采用加密值并使用算法对其进行解密。如果是这样,我会从哪里得到那个钥匙,它会去哪里。
非常感谢任何帮助,但有些惊讶我在网上找不到与此类似的任何问题。
非常感谢。