我想写一个脚本,可以加密和解密单词。但是我遇到了一个问题,无法理解它。我用来加密该代码是这样的:SHA256加密和解密(Python 2.7) - 相同的词,但不同的散列
def encrypt():
print "Enter string for encryption: \n"
rec = raw_input()
enkr =hashlib.sha256(rec).hexdigest()
print enkr
和代码我使用基于字典的解密方法是这样的:
def decrypt():
print "Enter hash for decryption: \n"
rec = raw_input()
print "Enter path of wordlist"
list = raw_input()
wordl=open(list,"r")
wordk = wordl.readlines()
for w in wordk:
w = hashlib.sha256(w).hexdigest()
if rec.lower() != w:
print "Not this " + w
elif rec.lower() ==w:
print "Found ! " + w
break
else:
print "Nothing found ! "
例如比方说,我想加密“管理”一词。我得到这个哈希8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 ,当我想解密我得到这个 fc8252c8dc55839967c58b9ad755a59b61b67c13227ddae4bd3f78a38bf394f7 和我的问题是,为什么会出现两次与相同功能的不同的哈希?最好的问候,汗
+0
基于反引号的语法用于代码格式化长度小于一行的字符串。对于多行块,在选择代码将每行缩进四个空格后,使用编辑器中的“{}”按钮,或者自己添加这些空格。 –
+2
不要描述你在做'加密'和'解密',因为它是错误的和令人困惑的。并且确保在从'readlines'出来的字符串的末尾去掉换行符,readline包含它们,raw_input不是 –
+0
SHA 256不加密。 –