python RC4算法全网独家对接如意网络验证
本帖最后由 188224912 于 2021-2-1 21:33 编辑加密是搞定了,无法解密中文,还有就是加密后的字符数据发给服务器,采用post还是get,对易语言门外汉,有大佬指导下吗?
# coding=utf-8
# python 3.7
#####WWW.52bangqi.com
import sys
import binascii,base64
def bytesToHex(bytes):
sb = ''
for i in range(len(bytes)):
hexs = hex(bytes & 0xFF)
if len(hexs) < 2:
sb += '0'
sb += hexs
print('sb',sb)
return sb
def hexToByte(inHex):
hexlen = len(inHex)
print(inHex)
print(hexlen)
result = []
if (hexlen % 2 == 1):
hexlen += 1
inHex="0"+inHex
for i in range(0, hexlen, 2):
data=result.append(int(inHex,16))
data=str(data)
print('data',data)
return data
def initKey(aKey):
state = list(range(256))
bkey =
index1 = 0
index2 = 0
if (len(bkey) == 0):
return []
for i in range(256):
index2 = ((bkey & 0xff) + (state & 0xff) + index2) & 0xff
state, state = state, state
index1 = (index1 + 1) % len(bkey)
return state
def RC4Base(input, mKkey):
x = 0
y = 0
q = input
j = len(input)
key = initKey(mKkey)
result = list(range(j))
for i in range(j):
x = (x + 1) & 0xff
y = ((key & 0xff) + y) & 0xff
key, key = key, key
xorIndex = ((key & 0xff) + (key & 0xff)) & 0xff
result = (q ^ key)
return result
def encryRC4Byte(data, key, chartSet='utf-8'):
if not chartSet:
bData =
print(bData)
print( RC4Base(bData, key))
return RC4Base(bData, key)
else:
bData = list(data.encode(chartSet))
print('bdata',bData)
print('rc4base',RC4Base(bData, key))
return RC4Base(bData, key)
def decryRC4(data, key, chartSet='utf-8'):
r = RC4Base(hexToByte(data), key)
print("r的值",type(r))
print(r)
print( bytes(r).decode(chartSet))
return bytes(r).decode(chartSet)
def encryRC4String(data, key, chartSet='utf-8'):
print('bytestohex', bytesToHex(encryRC4Byte(data, key, chartSet)))
print('encryRC4Byte', encryRC4Byte(data, key, chartSet))
return bytesToHex(encryRC4Byte(data, key, chartSet))
def rcfour(data, key, signs):
if signs == 'encode':
a=encryRC4String(data, key)
print(a)
return a
else:
a=decryRC4(data, key)
return a
if __name__ =='__main__':
# try:
# if choices not in ['decode', 'encode']:
# print('usage: %s string2decode key_string decode' % sys.argv)
# print(' or: %s string2encode key_string encode' % sys.argv)
# exit()
# except:
# print('usage: %s string2decode key_string decode' % sys.argv)
# print(' or: %s string2encode key_string encode' % sys.argv)
# exit()
key ='xHwsBShMjDBp3A6jSXQMhsemmPJriNp8' #"key"
data = '56我222' #"encoded_string"
choices='encode' # decode or encode
# print(key)
#a=rcfour(data,key,choices)
#print('加密',a)
data='31CA4D53110574'
#
print('============英文======')
b=decryRC4(data,key)
print('解密',b)
print('============中文======')
data='CE2A'
#
print('============英文======')
b=decryRC4(data,key)
print('解密',b)
.12 如何取腾讯视频的集数
如何取腾讯视频的集数 感谢分享 我看看!!! 666支持下 我帖子有支持中文的,刚刚出炉。
全网首发,支持中文不乱码加密PHP算法,通用易语言、E4A、java
RC4的 本帖最后由 那点事 于 2022-8-23 14:22 编辑
已解决rc4
页:
[1]