实现开发简易界面解决ctf加解密。
环境:python3.10.5 PYQT5
1.PYQT5安装
pip install PYQT5
2.小知识总结
2.1 绑定按钮信号
self.pushbutton1.clicked.connect(self.函数名)
2.2 获取textedit文本
self.textedit1.toPlainText()
2.3 获取lineedit文本
self.lineedit1.text()
2.4 输出textbrowser文本
self.textbrowser1.setTest()
self.textbrowser1.insertPlainText()#追加输出不换行
2.5 切换页面
# 页面1信号
self.pushButton.clicked.connect(self.btn1_fun)
# 页面1
def btn1_fun(self):
self.stackedWidget.setCurrentIndex(0)
3.功能实现
3.1 base编码解码
import base64
# base64加密实现函数def base64_JIAM(self):
a = self.textEdit_1.toPlainText()
st = a.encode() # 默认以utf8编码
res = base64.b64encode(st)
self.textBrowser.setText(str(res.decode()))
# base64解密实现函数
def base64_JIEM(self):
a = self.textEdit_1.toPlainText()
st = a.encode() # 默认以utf8编码
res = base64.b64decode(st)
try:
self.textBrowser.setText(str(res.decode()))
3.2 仿射密码
# 仿射密码加密实现函数
def FANGSHE_JIAM(self):
s = 'abcdefghijklmnopqrstuvwxyz'
s1 = []
a = int(self.lineEdit_3.text())
b = int(self.lineEdit_4.text())
m = self.textEdit_2.toPlainText()
for i in range(len(m)):
c = s.index(m[i])
dx1 = (a * c + b)
R = dx1 - 26 * (dx1 // 26)
s1.append(R)
self.textBrowser_2.insertPlainText(s[R])
# 仿射密码解密实现函数
def FANGSHE_JIEM(self):
s = 'abcdefghijklmnopqrstuvwxyz'
a = int(self.lineEdit_3.text())
b = int(self.lineEdit_4.text())
m = self.textEdit_2.toPlainText()
for i in range(0, 27):
if (a * i) % 26 == 1:
ny = i
for j in range(len(m)):
c = s.index(m[j])
dx1 = ny * (c - b)
R = dx1 - 26 * (dx1 // 26)
self.textBrowser_2.insertPlainText(s[R])
3.3 栅栏密码
# 栅栏密码加密