【问题标题】:Decoding hashed strings [duplicate]解码散列字符串[重复]
【发布时间】:2015-05-31 15:16:11
【问题描述】:

我已经成功编码了一些用户输入。但我无法解码。

这是我的代码:

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)。

【问题讨论】:

  • 您正在对原始字符串进行 MD5 哈希处理,这是一个 单向 哈希。无法解码。如果要对散列字符串进行字符串匹配或其他操作,则必须以相同的方式散列另一个字符串并检查它们是否匹配。

标签: python string hash pyqt


【解决方案1】:

您不能使用安全哈希函数来加密/解密字符串。

事实上,哈希算法是专门设计的,因此它们的输出不能被解密 - 这就是它们安全的原因!哈希通常用于检查传输数据的真实性。如果当前数据的哈希值与原始数据的哈希值匹配,则可以确信它们是相同的数据。

Python 或 Qt 都没有内置的加密/解密功能,因此如果需要,您需要使用第三方库,例如 simple-cryptpycrypto

另一方面,如果您想要的只是非安全混淆,请查看此 SO 问题中的一些建议:

【讨论】:

    猜你喜欢
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-18
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    相关资源
    最近更新 更多