Traceback (most recent call last):
File "ENCDEC.py", line 96, in decrypt
File "site-packages\cryptography\fernet.py", line 32, in __init__
File "site-packages\cryptography\hazmat\backends\__init__.py", line 35, in def
ault_backend
File "site-packages\cryptography\hazmat\backends\multibackend.py", line 33, in
__init__
ValueError: Multibackend cannot be initialized with no backends. If you are seeing this error when trying to use default_backend() please try uninstalling and reinstalling cryptography.
私はこの暗号化と復号化プログラムを作成しました。問題は、.exeをビルドしないだけです。私は再インストールし、--onefileとして試しました。Python暗号Multibackendを初期化できません
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
import os, sys, getpass, time
from cryptography.fernet import Fernet
from PyQt4 import QtCore, QtGui, uic
import subprocess
from cryptography.hazmat.backends import default_backend
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(795, 603)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.tabWidget = QtGui.QTabWidget(self.centralwidget)
self.tabWidget.setGeometry(QtCore.QRect(0, 0, 801, 601))
self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
self.encrypt = QtGui.QWidget()
self.encrypt.setObjectName(_fromUtf8("encrypt"))
self.data = QtGui.QLineEdit(self.encrypt)
self.data.setGeometry(QtCore.QRect(0, 450, 791, 31))
self.data.setAccessibleName(_fromUtf8(""))
self.data.setAutoFillBackground(True)
self.data.setObjectName(_fromUtf8("data"))
self.encryptButton = QtGui.QPushButton(self.encrypt)
self.encryptButton.setGeometry(QtCore.QRect(0, 492, 791, 61))
self.encryptButton.setObjectName(_fromUtf8("encryptButton"))
self.cryptDisplay = QtGui.QLineEdit(self.encrypt)
self.cryptDisplay.setGeometry(QtCore.QRect(12, 420, 371, 20))
self.cryptDisplay.setReadOnly(True)
self.cryptDisplay.setObjectName(_fromUtf8("cryptDisplay"))
self.keyDisplay = QtGui.QLineEdit(self.encrypt)
self.keyDisplay.setGeometry(QtCore.QRect(422, 420, 361, 20))
self.keyDisplay.setReadOnly(True)
self.keyDisplay.setObjectName(_fromUtf8("keyDisplay"))
self.tabWidget.addTab(self.encrypt, _fromUtf8(""))
self.Decrypt = QtGui.QWidget()
self.Decrypt.setObjectName(_fromUtf8("Decrypt"))
self.decryptButton = QtGui.QPushButton(self.Decrypt)
self.decryptButton.setGeometry(QtCore.QRect(8, 492, 781, 61))
self.decryptButton.setObjectName(_fromUtf8("decryptButton"))
self.input1 = QtGui.QLineEdit(self.Decrypt)
self.input1.setGeometry(QtCore.QRect(10, 460, 371, 20))
self.input1.setObjectName(_fromUtf8("input1"))
self.input2 = QtGui.QLineEdit(self.Decrypt)
self.input2.setGeometry(QtCore.QRect(420, 460, 361, 20))
self.input2.setObjectName(_fromUtf8("input2"))
self.data_2 = QtGui.QLineEdit(self.Decrypt)
self.data_2.setGeometry(QtCore.QRect(10, 420, 781, 31))
self.data_2.setAccessibleName(_fromUtf8(""))
self.data_2.setAutoFillBackground(True)
self.data_2.setReadOnly(True)
self.data_2.setObjectName(_fromUtf8("data_2"))
self.tabWidget.addTab(self.Decrypt, _fromUtf8(""))
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
self.tabWidget.setCurrentIndex(1)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.data.setText("MESSAGE")
self.cryptDisplay.setText("ENCRYPTED MESSAGE")
self.keyDisplay.setText("DECRYPTION KEY")
self.input2.setText("DECRYPTION KEY")
self.input1.setText("ENCRYPTED MESSAGE")
self.data_2.setText("DECRYPTED MESSAGE")
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
self.encryptButton.setText(_translate("MainWindow", "Encrypt", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.encrypt), _translate("MainWindow", "Encrypt", None))
self.decryptButton.setText(_translate("MainWindow", "Decrypt", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.Decrypt), _translate("MainWindow", "Decrypt", None))
self.encryptButton.clicked.connect(self.process_input)
self.decryptButton.clicked.connect(self.decrypt)
def process_input(self):
key = Fernet.generate_key()
cipher_suite = Fernet(key)
cipher_text = cipher_suite.encrypt(str(self.data.text()))
print self.data.text()
print cipher_text
plain_text = cipher_suite.decrypt(cipher_text)
self.cryptDisplay.setText(cipher_text)
self.keyDisplay.setText(str(key))
def decrypt(self):
cipher_suite = Fernet(str(self.input2.text()))
plain_text = cipher_suite.decrypt(str(self.input1.text()))
self.data_2.setText(str(plain_text))
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
MainWindow = QtGui.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
私はそれを正しく行ってもデフォルトのバックエンドdunnoをインポートしようとしました。それは作るのに数日を要し、私は人々とそれを共有できるようにしたいと思います。アイデアを開いて、今何をすべきかわからない。