加密解密函数python python解密加密文件

Python加密与解密 No module named 'Crypto'python版本:python3加密解密函数python,系统:win
会安装很多包:chardet, certifi, urllib3, idna, requests, pyyaml, Naked, shellescape, crypto
这时你会看到有crypto文件夹加密解密函数python,将其重命名为Crypto即可;
pip uninstall pycrypto,然后安装pycryptodome,pip install pycryptodome , 即可 。
你会发现site-packages下加密解密函数python的该模块的目录名已经是大写了-Crypto
这个时候pycryptodome就来了,它是pycrypto的延伸版本 , 用法和pycrypto是一模一样的
Python\Python36\Lib\site-packages,找到这个路径 , 下面有一个文件夹叫做crypto,将小写c改成大写C就ok了 。
python的加密方式: rsa加密和解密RSA加密是一种非对称加密,通常使用公钥加密,私钥解密 。
生成文件如下图:
可以将生成的公钥、私钥粘贴复制存储起来,以便使用:
在使用中, 通常会先对数据进行bas64加密, 再对加密后的内容使用rsa加密, 最后对rsa解密后的内容进行bas64解密.
Python 加密程序#coding=utf-8
'''''
Description: 可逆的加密与解密
Environment: python2.5.x
Author:idehong@gmail.com
'''
import os
import sys
class Code(object):
'''''可逆的加密与解密'''
def __init__(self, key = "idehong@gmail.com"):
self.__src_key = key
self.__key = self.__get_strascii(self.__src_key, True)
def encode(self, value):
'''''加密函数, 加密后为一串数字'''
return"%d" % (self.__get_strascii(value, True) ^ self.__key)
def decode(self, pwd):
'''''解密函数'''
if self.is_number(pwd):
return self.__get_strascii( (int(pwd)) ^ self.__key, False )
else:
print 'require number.'
def reset_key(self, key):
'''''重新设置key'''
self.__src_key = key
self.__key = self.__get_strascii(self.__src_key, True)
#===============================================================================
#内部调用接口
#===============================================================================
def __get_strascii(self, value, bFlag):
if bFlag:
return self.__get_str2ascii(value)
else:
return self.__get_ascii2str(value)
def __get_str2ascii(self, value):
ls = []
for i in value:
ls.append( self.__get_char2ascii( i ) )
return long("".join(ls))
def __get_char2ascii(self, char):
'''''获取单个字符的acsii码值'''
【加密解密函数python python解密加密文件】try:
return ".d" % ord(char)
except (TypeError, ValueError):
print "key error."
exit(1)
def __get_ascii2char(self, ascii):
if self.is_ascii_range(ascii):
return chr(ascii)
else:
print "ascii error(%d)" % ascii
exit(1)
def __get_ascii2str(self, n_chars):
ls = []
s = "%s" % n_chars
n, p = divmod(len(s), 3)
if p0:
nRet = int(s[0 : p])
ls.append( self.__get_ascii2char(nRet))
pTmp = p
while pTmplen(s):
ls.append( self.__get_ascii2char( int(s[pTmp: pTmp3])) )
pTmp= 3
return "".join(ls)
#================================================================================
#工具接口
#================================================================================
def is_number(self, value):
try:
int(value)
return True
except (TypeError, ValueError):
pass
return False
def is_ascii_range(self, n):
return 0 = n256
def is_custom_ascii_range(self, n):
return 33 = n 48 or 58 = n126
class Usage(object):
'''''
命令行参数读取与解析
'''
def __init__(self):
self._clsWork = Code()
self._args_dic = {'arg_help' : ['-?', '-help'],
'arg_p' : ['-p', '-pwd'],
'arg_t' : ['-t', '-text'],
'arg_k' : ['-k', '-key'],
}
def help(self, *k):
strHelp = "Usage: pwd [-options] [args...] where option include:"
strHelp= """
-? -helpprint this help message
-k key_str -p pwd_str
-k key_str -t text_str"""
print strHelp
def args(self, argv_ls):
'''''dispatch command'''
#print argv_ls
if len(argv_ls) = 1 or len(argv_ls)5:
print 'Unrecognized option'
return
cmd_dic = {}
curr_cmd = ''
# control command
for i, v in enumerate(argv_ls[1:]):
for j in self._args_dic.items():
# add command
if v in j[1] and j[0] not in cmd_dic:
curr_cmd = j[0]
cmd_dic[curr_cmd] = []
break
else:
# add argv
if cmd_dic:
cmd_dic[curr_cmd].append(v)
# exec command
if cmd_dic:
self.exec_cmd(cmd_dic)
else:
print 'Unrecognized option'
def exec_cmd(self, cmd_dic):
'''''exec cmd'''
if len(cmd_dic) == 2:
if 'arg_p' in cmd_dic and 'arg_k' in cmd_dic\
and len(cmd_dic['arg_p']) == 1 and len(cmd_dic['arg_k']) == 1:
self._clsWork.reset_key(cmd_dic['arg_k'][0])
print self._clsWork.encode(cmd_dic['arg_p'][0])
return
elif 'arg_t' in cmd_dic and 'arg_k' in cmd_dic\
and len(cmd_dic['arg_t']) == 1 and len(cmd_dic['arg_k']) == 1:
self._clsWork.reset_key(cmd_dic['arg_k'][0])
print self._clsWork.decode(cmd_dic['arg_t'][0])
return
self.help()
if __name__ == '__main__':
usage = Usage()
usage.args(sys.argv)
python给定一个5位数字,如12345,试设计一种加密方法,将数字加密、解密?加密 5 位数字(如 12345)的一种方法是对数字中的每个数字应用数学运算以创建一个新的加密数字 。例如,您可以为每个数字加 3 以获得 34578 。要解密数字,您只需对每个数字应用反向运算(在本例中为减去 3)即可返回原始数字 。
加密数字的另一种方法是使用替换密码 , 其中每个数字都替换为不同的字母或符号 。例如,您可以将每个数字替换为字母表中后面一定位置的字母(例如,1 替换为 D , 2 替换为 E,依此类推) 。要解密数字,您只需应用反向替换(在这种情况下,将每个字母替换为相应的数字) 。
这些只是加密和解密 5 位数字的许多不同方法的两个示例 。您选择的具体方法将取决于您所需的安全级别和可用的资源(例如时间、计算能力) 。
回答不易望请采纳
加密解密函数python的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于python解密加密文件、加密解密函数python的信息别忘了在本站进行查找喔 。

    推荐阅读