问题标签 [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 投票
1 回答
1064 浏览

security - 消息验证码 (MAC) 是否确保所用密钥的真实性?

我必须用密码保护记录文件的机密性、完整性和真实性。记录的数量可能超过 32^2,并且可以独立访问每条记录。

实现它的一种方法是

  1. 生成一个 256 位的随机 salt 并将其存储在文件头中。
  2. 使用来自 PKCS #5 的 PBKDF2 和 HMAC-SHA256 从密码和盐生成派生密钥。
  3. 为每条记录生成一个 96 位随机初始化向量。
  4. 在 GCM 模式下,使用派生密钥、初始化向量和(作为附加的经过身份验证的数据)记录在文件中的位置,使用 AES-256 加密每个记录的内容。
  5. 因此,每条记录都将存储一个初始化向量、一个加密内容和一个 MAC。

但是定义 GCM 和 GMAC 的 NIST 特别出版物 SP800-38D要求记录数少于 32^2 才能使初始化向量唯一。

所以我设计了另一种解决方案:使用派生密钥作为密钥,使用 HMAC-SHA256 为每个记录创建一个密钥,并将文件中记录的位置作为要验证的消息(盐)。

所以问题是我是否需要将文件中记录的位置提供给经过身份验证的加密算法作为附加的经过身份验证的数据,因为我在生成密钥时已经处理了它?

此外,我真的需要使用初始化向量吗,因为所有记录都将使用 HMAC-SHA256(PBKDF2(HMAC-SHA256, password, salt, iterationCount, 256), blockAddress) 生成的所谓不同密钥进行加密和身份验证?

我不知道文件的大小,所以我认为它可能非常大。

0 投票
3 回答
193 浏览

security - 当散列不适用时将密码存储在数据库中

Stack Overflow 上有很多关于如何存储用户密码的问题,一般建议当然是对密码进行哈希处理并比较哈希值。

但是,假设您正在构建人们在自己的环境中部署的收缩包装 Intranet 应用程序(如 SharePoint)。并假设它需要用户名/密码组合才能通过 HTTP 访问外部服务(不支持依赖 API 密钥或联合安全性的解决方案)。

在这种情况下,我们不能散列密码,因为我们需要将原始密码传递给我们调用的 Web 服务。加密将是第二好的解决方案,但我们将使用什么作为加密密钥?如果被攻击者破坏了数据库,大概他们首先可以访问用于加密数据的任何密钥?

如果您确实需要获取存储密码的纯文本版本,您将如何以最安全的方式解决问题?

0 投票
3 回答
5088 浏览

java - 加密解密库,如 JASYPT

我想知道是否有像 JASYPT 这样的替代库,可以帮助我加密/解密密码。

0 投票
1 回答
368 浏览

c - 有没有办法将密码加密数据与到期日期一起存储?

我想将一些数据存储在密码加密文件中。该文件应包含: 1) 数据的到期日期 2) 数据本身 到期日期不一定需要加密,但需要防止篡改(例如,可以对整个文件进行签名)。

有没有办法使用 OpenSSL 使用一些定义明确的加密格式来做到这一点?我只对在 C 中以编程方式执行它感兴趣(最好使用 OpenSSL API,例如 EVP_* 和朋友),执行进程、脚本、Java、.NET、Python 等是不可能的。

PS 我对 OpenSSL API 非常熟悉,但不知何故我找不到任何好的(至少相对“干净”)解决方案来解决这个问题。

0 投票
4 回答
2635 浏览

php - PHP MySQL用户密码加密

我正在使用以下方式来加密用户的密码,即 AES 加密。我只是想知道这是一个好习惯还是我应该遵循其他任何方法。因为有人让我困惑说“你为什么不使用“SALT”。我可以使用 SALT AES 加密吗?与 Bellow 是我正在使用的示例查询。

0 投票
4 回答
19149 浏览

c - Password to key function compatible with OpenSSL commands?

For example, the command:

outputs something like:

How is that key generated? (C code as an answer would be too awesome to ask for :) ) Also, how is the iv generated?

Looks like some kind of hex to me.

0 投票
2 回答
142 浏览

salt - 加盐如何防止攻击者访问您的密码哈希?

我已经阅读了一些关于密码加盐的问题,其中大部分涵盖了(我认为)我已经理解的内容。那是; 在密码哈希中包含随机盐的目的首先是为了防止两个哈希相同,即使密码相同也是如此。其次,为了阻止将哈希与预编译列表匹配的彩虹表攻击(因为没有一个预编译的哈希使用您使用的盐,因此需要为每个盐/哈希生成一个新的彩虹表)。如果我对此有任何误解,请随时纠正我。

现在我的问题是:如果攻击者可以访问您的哈希值(我们正在防范的场景),那么这意味着他们正在访问您的数据库。既然如此,哈希是什么肯定无关紧要,他们可以用他们想要的任何东西替换它吗?

0 投票
1 回答
1817 浏览

c# - 在 C# 中加密密码并在 php 中解密

我想在 C# 中使用以下加密方法。但我不知道它是否可用以及如何准确使用它。因为我对 web 更加熟悉 :'(。任务是我必须解密在桌面应用程序中加密的用户密码。(用 C# 编写)并作为 json 对象发送。使用我的 php 脚本我必须解码 json对象并解密密码。请帮助。如果这无法实现,请建议我使用解决方案。

我想在 C# 中使用这段代码

我从这里得到了加密和解密方法

0 投票
4 回答
450 浏览

c# - 在 php 中传输用户密码的安全方法

嗨,这些天我正在谷歌搜索以找到一种通过互联网发送用户信息(包括密码)的更好方法。我们的服务器没有安装 SSL。所以需要一个非常简单和安全的方法来发送用户信息。将来我的老板想扩展它以连接用 .net(C#) 编写的桌面应用程序。所以这些方法也应该与.net兼容。我需要一个建议或任何我能得到一个好主意的东西来开发一个更好的解决方案。

0 投票
2 回答
962 浏览

jquery - 使用哈希 sha-512 在数据库中使用加密密码验证表单中的密码

使用哈希 SHA-512 在数据库中使用加密密码验证表单中的密码我正在尝试做的是专门用于更改密码表单。

我可以验证表单和数据库中的密码是否未加密...但是我无法验证输入的密码是否等于数据库密码,因为输入的密码仍然是正常形式,并且数据库中的密码是加密的密码。

我想使用jQuery验证功能......但坚持如何通过在提交前用数据库加密输入的密码来解决。