Python实用脚本

本文详细介绍了Python中各种进制转换(如十进制、二进制、八进制到十六进制),字符串与字节操作,碰撞技巧,以及base64编码和MD5、SHA256、SHA512加密算法的应用。
摘要由CSDN通过智能技术生成

一、进制转换

1.十六进制

1.1 十进制转十六进制

######################十进制转十六进制######################
a = 89
b = hex(a)  # hex接纳的类型为整数
print(b)  # 0x59

1.2 二进制转十六进制

######################二进制转十六进制######################
a = 0b01011001
b = hex(a)  # hex接纳的类型为整数
print(b)  # 0x59

1.3 八进制转十六进制

######################八进制转十六进制######################
a = 0o131
b = hex(a)  # hex接纳的类型为整数
print(b)  # 0x59

1.4 字符串转十六进制

######################字符串转十六进制######################
a = 'IDAT'
b = a.encode().hex()
print(b)  # 49444154

二、字节

######################字符串字节######################
a = 'IDAT'
b = a.encode()
print(b)  # b'IDAT'
print(b == b'\x49\x44\x41\x54')
######################十进制转字节######################
a = 15
a = str(a)
b = a.encode()
print(b)  # b'15'
######################十六进制转字节######################
a = 0xf
a = str(a)
b = a.encode()
print(b)  # b'15'
######################八进制转字节######################
a = 0o17
a = str(a)
b = a.encode()
print(b)  # b'15'
######################二进制转字节######################
a = 0b1111
a = str(a)
b = a.encode()
print(b)  # b'15'

三、碰撞

######################碰撞字典######################
import string

s = string.ascii_letters + string.digits + string.punctuation + string.whitespace
print(s)  # "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\t\n\r\x0b\x0c"
s = string.printable
print(s)  # "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\t\n\r\x0b\x0c"
# 暴力破解全一点用string.printable就好了
######################碰撞函数######################
import itertools
# repeat为X时就会产生长度为X的字符串,在循环里面,其会一直穷尽s字符串里面的每一个值
for number in itertools.product(s, repeat=6):
    # print(number) # ('0', '0', '0', '%', '&', '^')
    print(''.join(number)) # 000%&^
	# 001ib0
	# 001ib1
	# 001ib2
	# 001ib3
	# 001ib4
	# 001ib5
	# 001ib6
	# 001ib7
	# 001ib8
	# 001ib9
	# 001iba
	# 001ibb
	# 001ibc
	# 001ibd
	# 001ibe
	# 001ibf
	# 001ibg
	# 001ibh
	# 001ibi
	# 001ibj

四、编码

1.base64

######################base64编码######################
import base64


def base64decode(s):
    decoder = base64.b64decode(s)
    return decoder.decode('utf-8')


def base64encode(s):
    encoder = base64.b64encode(s.encode("utf-8"))
    str_encoder = encoder.decode('utf-8')
    return str_encoder


print(base64encode('你好'))  # 5L2g5aW9
print(base64decode('5L2g5aW9'))  # 你好

五、加密

1.MD5

######################MD5加密######################
import hashlib


def md5_hash(input_string):
    md5 = hashlib.md5()
    md5.update(input_string.encode('utf-8'))
    return md5.hexdigest()


print(md5_hash('123456')) # e10adc3949ba59abbe56e057f20f883e

2.sha256

######################sha256加密######################
import hashlib


def sha256_hash(str):
    hash = hashlib.sha256()
    hash.update(str.encode("utf-8"))
    return hash.hexdigest()


print(sha256_hash('123456')) # 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92

3.sha512

######################sha512加密######################
import hashlib


def sha512_hash(str):
    hash = hashlib.sha512()
    hash.update(str.encode("utf-8"))
    return hash.hexdigest()


print(sha512_hash('123456'))  # ba3253876aed6bc22d4a6ff53d8406c6ad864195ed144ab5c87621b6c233b548baeae6956df346ec8c17f5ea10f35ee3cbc514797ed7ddd3145464e2a0bab413
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值