解密密码使用Exec master.dbo.xp_sha1加密

时间:2014-10-12 14:46:41

标签: sql-server sql-server-2008 encryption

我想解密存储在Sql Server 2008数据库中的密码,这些密码是使用 Exec master.dbo.xp_sha1 @Password,@ EncPassword输出加密的。是否可以解密?

加密密码如下所示: xxstgggettebbqyyayujjweee

由于

1 个答案:

答案 0 :(得分:4)

xp_sha1是一个非标准的主存储过程,它不包含在我见过的任何sql server中,但我快速浏览了一下google:http://www.xpcrypt.com/xpho/xp_sha1.htm

正如我在你的问题Encrypt passwords on Sql Server 2008 using SHA1中的回答/评论中所述,加密与散列不是一回事。 SHA1是哈希,而不是加密。加密可以撤消,哈希不能。

在最后一个问题的答案中提到的链接会详细讨论,但这里有几篇专门围绕加密和散列之间差异的文章:

Difference between Hashing a Password and Encrypting it

http://www.darkreading.com/safely-storing-user-passwords-hashing-vs-encrypting/a/d-id/1269374

请理解加密和散列之间存在根本区别。

如果您将“密码”加密为“123809dsfajsfoiwj”作为示例,知道密钥和加密方法,您可以通过适当的解密返回“密码”。

使用SHA1和散列“密码”,无法将散列的“jdsfioajd0f98uas”(示例)反转回原始的“密码”。每次给定相同的输入时,哈希都会创建相同的哈希值,因此哈希值会与“验证密码”的哈希值进行比较。你永远不会回到原来的。