解密字符串C#

时间:2009-03-12 18:38:12

标签: .net security encryption

我公司正在接管来自第三方的会员专用网站。我们重新编写了网站,最后一步是导入现有用户。我们拥有包含用户及其密码的数据库。我们还获得了“密钥”,并被告知密码字段是使用AES加密加密的。

我需要解密密码,然后使用我公司的加密密钥在新数据库中重新加密它们。使用.Net,我如何只用密钥解密密码?我见过的所有样本都需要BlockSize,InitializationVector,KeySize等信息。我没有这些信息。

由于

4 个答案:

答案 0 :(得分:1)

这似乎是错误的...密码通常不会加密,它们会被散列。如果是这种情况,那么您将无法检索原始密码。

有什么方法可以查看原始代码,看看密码是如何生成的?

答案 1 :(得分:1)

为什么不向每个用户发送包含他们可以点击的唯一链接的电子邮件,这会将他们带到可以重置密码的页面?

用户应该定期更改密码。

答案 2 :(得分:0)

你可以玩的BlockSize和KeySize(它们是8 IIRC的倍数)。

不确定初始化向量。可能全部为0,但您需要至少1个正确解密的密码才能验证。

祝你好运。 :)

答案 3 :(得分:0)

在不知道IV的情况下,很可能无法对其进行解密,尤其是因为您处理的密码很可能小于块大小(AES标准是128位)。

您的选择非常有限:

  • 向第三方网站询问IV
  • 如果您可以访问他们的代码,您可能会发现相同的IV用于加密代码中的所有密码(虽然这不是很好的做法),因为他们将来没有办法对用户进行身份验证要么一次又一次地使用同一个,要么将他们用于数据库中某个特定用户的那个存储在数据库中
  • 让用户在您的新版本网站上重新注册,并使用某种形式的hashing代替加密