问题标签 [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.

0 投票
3 回答
2946 浏览

c# - 正在加密“Microsoft Access 数据库”.accdb 文件可能会被黑客入侵

我正在使用 Visual Studio 2010 和 Microsoft Access 2010 使用 C# 编程语言开发桌面应用程序。

连接字符串是:

connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\KBank.accdb;Persist Security Info=False"

我在 C# 代码中给它密码,如下所示:

我只在一个简单的“选择”查询中使用了项目中的数据库。

所以,关于安全问题.. 任何人都可以解密访问数据库或查看密码吗?你有什么建议让任何人都很难看到数据库数据

0 投票
1 回答
410 浏览

passwords - Bcrypt,维护工作因素:长时间不登录的用户怎么办

我试图了解如何维护使用 bcrypt 散列的密码的工作因子。

我在那里找到了一个解决方案:Optimal bcrypt factor,这基本上是说您可以在用户登录时重新散列。

但是我不明白它如何解决长时间不登录的用户的问题。在这种情况下,我想唯一的解决方案是向他们发送一封电子邮件,说他们的帐户出于安全目的将被停用?

0 投票
1 回答
2758 浏览

node.js - Node.js 和密码安全:三个问题

我以前从未编写过用户身份验证系统,对于这个项目,我需要在安全性和效率之间取得平衡(这意味着我不能花费数百个工时来解决这个问题,但我需要保留密码和登录信息安全的)。

我将 Node.js 与 express 框架和护照一起用于身份验证和会话。

到目前为止,我所做的研究表明需要解决三个问题。在今天之前,我真的不知道是否存在针对这些问题的任何通用解决方案,并且几个小时的随机研究并没有让我对我找到的答案的完整性充满信心。

问题:

  1. 不要将未加密的纯文本密码存储在数据库中(可能的答案:在服务器上对密码进行加盐/散列,并将散列存储在数据库中。)

  2. 不要通过非安全的 http 连接传递纯文本密码(可能的答案:A--仅使用 Https 进行身份验证过程。之后使用 http。B--在登录页面向用户发送随机盐,散列密码客户端,然后取消散列并重新加密以进行数据库存储。)

  3. 不要使用 GPU 每秒可以破解 700,000,000 个密码的弱加密方法。(可能的答案:bcrypt)

这些只是我在 3 小时的研究中找到的最明智的答案。我不知道这些是否足够,它们的弱点是什么或可能有哪些替代方案。我会很感激任何进一步的见解(另请注意:我什至不确定 - https 是否在传输密码时充分保护密码?)

0 投票
3 回答
256 浏览

python - Python中的密码提交

我正在使用谷歌应用引擎开发一个网站,我想知道处理提交的正确方法是什么。

我正在考虑做一些事情,比如用一些盐对密码客户端进行散列,然后在服务器端用一些其他盐再次对其进行散列。

我想知道这是否至少是一些不错的安全性,以及它是否已经存在一个可以做到这一点或更好的 Python 库。

0 投票
0 回答
737 浏览

iis-express - iisClientCertificateMappingAuthentication 的加密密码 = 密钥集不存在

为 IIS 客户端证书映射身份验证添加 oneToOneMappings 时。出于显而易见的原因,我们想要加密密码。但是如果我们尝试运行以下脚本:

我们得到keyset不存在错误。

我们如何解决这个问题?

(我们在 Windows XP 上运行)

参考1

参考文献 2

参考文献 3

0 投票
2 回答
5606 浏览

php - 密码存储,使用 sha-512 的 hash() 或使用河豚 (bcrypt) 的 crypt()?

这是我当前在 PHP/SQL 项目中的密码散列程序...

  • 从 /dev/urandom 获取每个用户的 512 位盐,存储在用户的数据库记录中,除了最终的哈希
  • 从存储在文件系统中的 /dev/urandom 中获取 512 位“胡椒”。这是每个应用程序的常量,并且对于每个用户都是相同的
  • 然后hash('sha512', $password.$salt.$pepper, TRUE)

哈希和盐以二进制形式存储在数据库中,主要是出于习惯。我认为这在安全性方面没有任何区别。如果有的话,它对于 SQL 备份来说稍微不方便,并且使 PHP 代码看起来稍微复杂一些。

如今hash(),SHA-256 或 SHA-512 是否被普遍认为已被 bcrypt 取代?
我相信 SHA-2 (256/512) 仍然被认为是加密安全的,我可能过度使用熵位。与攻击者从数据库转储中对 SHA-2 哈希进行逆向工程相比,这更有可能是我的代码中的一个缺陷导致问题。

但是我是否应该更新我的方法以改为crypt()与 CRYPT_BLOWFISH 一起使用(我相信这被称为 bcrypt,从技术上讲,河豚是一种密码而不是散列算法)?
甚至就像未来的最佳实践一样?

我并不特别担心算法的计算费用(在合理范围内)。这只会成为创建帐户、更改密码或登录时哈希然后比较时的一个因素。这些活动只占页面浏览量的一小部分。我想在某种程度上越慢越好,如果它使服务器更难生成,那么它将使攻击者的工作更慢以暴力破解。

干杯,B

0 投票
2 回答
524 浏览

java - Java 加密器的密钥处理

在我基于 Java 的网络应用程序中,我想在将某些数据写入数据库之前对其进行加密,并在加载回内存后对其进行解密。为此,我使用了bouncycastle API 并创建了一个如下所示的类:

到目前为止一切都很好(我想是的,如果你对这门课有任何意见,请继续)。要初始化这个类,我应该提供一个密钥。我的问题是 - 我应该如何管理这个密钥?

更具体:

  • 我应该使用特定技术创建它吗?
  • 我应该把它存放在哪里?在属性文件中?在数据库中?在我的代码中的某个地方?
  • 这个密钥(我们在这里谈论的是一个字符串,对吗?)是否应该加密,然后在加载或使用后解密?如果是这样,我该怎么做?
0 投票
1 回答
630 浏览

ruby-on-rails - rails 设计为用户模型创建一个 CRUD 接口

我有一个用户模型,我在 admin 命名空间中使用一些控制器代码和表单创建了 CRUD 界面。用户模型最初有用户名电子邮件密码字段。

然后我设置设计以使用相同的用户模型。问题是设计加密密码并将它们放在 encrypted_pa​​ssword 字段中,所以我创建的密码和 CRUD 接口现在没用了。我希望管理员对用户表具有 CRUD 能力,同时我想设计使用它。

可能的解决方案是 1) 调用设计控制器的方法,该方法将添加一个用户来处理我的控制器内的加密密码,我不知道这是否可行并且是一个不错的方法。

2)自己加密密码并将它们存储在同一个字段设计中,我试图弄清楚设计如何加密密码我发现了一些帖子,但没有一个有效。我什至尝试添加自定义加密方法,它也不起作用。

任何人都可以帮我解决这个问题吗?

0 投票
2 回答
2448 浏览

php - 我保护 MySQL 数据库密码的方法安全吗?

使用时:

我已经阅读了将密码部分存储在其他地方的好处(https://stackoverflow.com/a/3354457/1704651)。

我对 PHP 还很陌生,想知道我存储 MySQL 密码的方法是否安全:

  1. 第一步,选择一个冗长的 MySQL 数据库密码 ( https://www.random.org/passwords/?num=1&len=24&format=html&rnd=new )
  2. 第二步,把这个放在 /outsidewebroot/salt.php (我的实际盐更长)

    /li>
  3. 第三步,使用临时 PHP 文件(使用后删除)对密码进行编码:

    /li>
  4. 第四步,将此代码放入.htaccess

    /li>
  5. 第五步,把这段代码放在你需要连接数据库的地方:

    /li>

/outsidewebroot/salt.php 中的盐与我在数据库中用于散列密码的盐相同,因此我只需将其包含一次以供两次使用。

我在这里看到的加密/解密方法:http: //ideone.com/yQIAX

我也见过这种方法:https ://stackoverflow.com/a/3354457/1704651使用哈希而不是加密/解密方法。

感谢您对我的方法的反馈。

0 投票
4 回答
1751 浏览

android - 数组越界错误

我正在尝试使用 Base64 对我的 sharedPreferences 用户名和密码进行编码,但是在 eclipse 模拟器中运行我的程序时,我收到一条错误消息,提示“数组越界”。我不确定这个错误是什么意思以及如何纠正它。

日志猫:

这是我的注册活动,它应该采用 EditText 字符串、编码并保存到 sharedpreferences xml。

更正: