-
生成固定长度随机字符串密码
import random
import string
def random_str(length=8):
return "".join(random.sample(string.ascii_letters, length))
from random import Random
def random_str(randomlength=8):
str = ''
chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789'
length = len(chars) - 1
random = Random()
for i in range(randomlength):
str+=chars[random.randint(0, length)]
return str
-
二进制字符串转普通字符串
每 8 个分成一组,用 int 转 10 进制,再用 chr 转为 ascii 字符
s="0110001101111001"
ans=""
for i in range(0,len(s)//8):
x = s[i*8:i*8+8]
ans+=chr(int(x,2))
利用 binascii,先用 int 转为 10 进制,然后转为 16 进制字符串,调用 unhexlify 执行翻译
import binascii
s="0110001101111001"
ans=binascii.unhexlify('%x'%int(s,2)).decode()
-
符号数与无符号数转换
无符号 -> 有符号
import ctypes
ctypes.c_int64(17039472050328044269).value
有符号 -> 无符号
import ctypes
ctypes.c_uint64(-1407272023381507347).value
-
捕捉输入的 Ctrl+C
很邪恶的屏蔽用户输入 Ctrl+C 的做法
import signal
def signal_handler(signum,data):
if signum == signal.SIGINT:
print("Ctrl+C is pressed!")
# raise KeyboardInterrupt
if __name__ == '__main__':
signal.signal(signal.SIGINT, signal_handler)
sleep(666)
-
AES 加密字符串
加密
plaintext = "hello world"
import pyaes,base64
aes = pyaes.AESModeOfOperationCTR(b"This_key_for_demo_purposes_only!")
encrypted_text = base64.b64encode(aes.encrypt(plaintext.encode("utf-8")))
print(encrypted_text) # ipkEJevbnsfbEm4=
解密
encrypted_text = "ipkEJevbnsfbEm4="
import pyaes, base64
aes = pyaes.AESModeOfOperationCTR(b"This_key_for_demo_purposes_only!")
plaintext = aes.decrypt(base64.b64decode(encrypted_text)).decode()
print(plaintext) # hello world