Python加密与解密 No module named 'Crypto'

Python018

Python加密与解密 No module named 'Crypto',第1张

python版本:python3,系统:win

会安装很多包:chardet, certifi, urllib3, idna, requests, pyyaml, Naked, shellescape, crypto

这时你会看到有crypto文件夹,将其重命名为Crypto即可

pip uninstall pycrypto,然后安装pycryptodome,pip install pycryptodome,即可。

你会发现site-packages下的该模块的目录名已经是大写了-Crypto

这个时候pycryptodome就来了,它是pycrypto的延伸版本,用法和pycrypto是一模一样的

Python\Python36\Lib\site-packages,找到这个路径,下面有一个文件夹叫做crypto,将小写c改成大写C就ok了。

可以给db文件添加密码。

在Python中异或操作符为,^,也可以记作XOR。按位异或的意思是。相同值异或为0,不同值异或为1.具体来讲,有四种可能,0^0=0,0^1=1,1^0=1,1^1=0。我们还可总结出规律(A为0或1),0和A异或为A本身。1和A异或为A反。

加密操作,首先将文件转换成二进制数,再生成与该二进制数等长的随机密钥,将二进制数与密钥进行异或操作,得到加密后的二进制数。解密操作,将加密后的二进制程序与密钥进行异或操作,就得到原二进制数,最后将原二进制数恢复成文本文件。

1.安装cython

sudo apt-get install cython

2.目标加密文件dataHandle.py,cd到文件目录下

sudo cython -a dataHandle.py

3. 把生成的dataHandle.c 变成dataHandle.so

gcc -shared -pthread -fPIC -fwrapv -O2 -Wall -fno-strict-aliasing -I/usr/include/python3.7 -o dataHandle.so dataHandle.c

4.删掉dataHandle.py,只留dataHandle.so,再次执行项目正常运行不受影响。

windows平台快捷打包方法:

1. pip install pyinstaller

2. cd 到程序文件加下

3. pyinstaller main.py  成功后dist文件夹下生成main.exe(删除其他的源程序,留下main.exe)