我已成功编码了一些用户输入。但我无法解码它。
这是我的代码:
from PyQt4 import QtGui, QtCore
import sys, os
from PyQt4.Qt import SIGNAL, SLOT, QMainWindow, qApp, QUrl, QImage,\
QStringListModel
import hashlib
import base64
class Dialog_01(QtGui.QMainWindow):
def __init__(self):
super(QtGui.QMainWindow,self).__init__()
myQWidget = QtGui.QWidget()
myBoxLayout = QtGui.QVBoxLayout()
myQWidget.setLayout(myBoxLayout)
self.setCentralWidget(myQWidget)
self.line = QtGui.QLineEdit(self)
self.line.setObjectName("host")
savebutton = QtGui.QPushButton("Print")
savebutton.setMinimumSize(35,30)
savebutton.clicked.connect(self.printtext)
myBoxLayout.addWidget(savebutton)
def printtext(self):
shost = self.line.text()
#shost = "Hello"
#print(self.ComboBox.currentText())
self.md = hashlib.md5()
self.md.update(shost.encode())
str1 = (self.md.hexdigest())
print(str1)
str2 = codecs.decode(s, '5d41402abc4b2a76b9719d911017c592')
print(str2)
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
dialog_1 = Dialog_01()
dialog_1.show()
dialog_1.resize(480,320)
sys.exit(app.exec_())
我想要的是解码加密的字符串(str1
)。
答案 0 :(得分:0)
您不能使用安全散列函数来加密/解密字符串。
事实上,哈希算法是专门设计的,因此它们的输出不能被解密 - 这就是使它们安全的原因!哈希通常用于检查传输数据的真实性。如果当前数据的哈希值与原始数据的哈希值匹配,则可以确信它们是相同的数据。
Python或Qt中没有内置加密/解密,因此如果您需要,则需要使用第三方库,例如simple-crypt或pycrypto。< / p>
另一方面,如果你想要的只是非安全混淆,请看看这个SO问题中的一些建议: