python通过cython加密代码
#coding=utf-8
importgetopt
importos,sys
importzipfile
fromCrypto.CipherimportAES
importrandom,struct
#加密python3的代码
deftransfer3(dir_pref):
os.system('cython-2%s.py;'
'gcc-c-fPIC-I/usr/include/python3.5/%s.c-o%s.o'
%(dir_pref,dir_pref,dir_pref))
os.system('gcc-shared%s.o-o%s.so'%(dir_pref,dir_pref))
ifclear:
os.system('rm-f%s.c%s.o%s.py'%(dir_pref,dir_pref,dir_pref))
else:
os.system('rm-f%s.c%s.o'%(dir_pref,dir_pref))
#加密python2的代码
deftransfer2(dir_pref):
os.system('cython-2%s.py;'
'gcc-c-fPIC-I/usr/include/python2.7/%s.c-o%s.o'
%(dir_pref,dir_pref,dir_pref))
os.system('gcc-shared%s.o-o%s.so'%(dir_pref,dir_pref))
ifclear:
os.system('rm-f%s.c%s.o%s.py'%(dir_pref,dir_pref,dir_pref))
else:
os.system('rm-f%s.c%s.o'%(dir_pref,dir_pref))
#加密AI模型
defencrypt_file(in_filename,out_filename=None,chunksize=64*1024):
"""
使用AES(CBC模式)加密文件给定的密钥。
:paramkey:加密密钥-必须是16、24或32字节长。长按键更安全。
:paramin_filename:输入的文件的名称
:paramout_filename:如果为None,将使用“.enc”。
:paramchunksize:设置函数用于读取和加密文件。大块一些文件和机器的大小可能更快。块大小必须可被16整除。
:return:None
"""
ifnotout_filename:
out_filename=in_filename+'.enc'
salt='' #盐值
key="{:<32}".format(salt).encode("utf-8")
#iv=''.join(chr(random.randint(0,0xFF))foriinrange(16))
#encryptor=AES.new(key,AES.MODE_CBC,iv)
iv=b'0000000000000000'
encryptor=AES.new(key,AES.MODE_CBC,iv)
filesize=os.path.getsize(in_filename)
withopen(in_filename,'rb')asinfile:
withopen(out_filename,'wb')asoutfile:
outfile.write(struct.pack('
以上就是python通过cython加密代码的详细内容,更多关于pythoncpython加密的资料请关注毛票票其它相关文章!