真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python加密函數(shù) python 數(shù)據(jù)加密

python的加密方式: rsa加密和解密

RSA加密是一種非對稱加密,通常使用公鑰加密,私鑰解密。

麗江網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),麗江網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為麗江超過千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個(gè)售后服務(wù)好的麗江做網(wǎng)站的公司定做!

生成文件如下圖:

可以將生成的公鑰、私鑰粘貼復(fù)制存儲(chǔ)起來,以便使用:

在使用中, 通常會(huì)先對數(shù)據(jù)進(jìn)行bas64加密, 再對加密后的內(nèi)容使用rsa加密, 最后對rsa解密后的內(nèi)容進(jìn)行bas64解密.

Python簡單加密操作

加密是將一個(gè)明文數(shù)據(jù),按照指定的算法,運(yùn)算得到一個(gè)其他的可以隱藏真實(shí)信息的密文數(shù)據(jù),這個(gè)過程稱為加密;處理的算法稱為加密算法;用到的關(guān)鍵數(shù)據(jù)稱為密鑰。

解密是按照制定的算法和關(guān)鍵數(shù)據(jù),將一個(gè)密文數(shù)據(jù)進(jìn)行逆向運(yùn)算得到的正確的明文數(shù)據(jù)的過程

如:用戶賬號密碼存儲(chǔ),此時(shí)任何人都不能查看該用戶的明文密碼

1.原始數(shù)據(jù)

2.編碼(轉(zhuǎn)換為字節(jié)數(shù)據(jù))

3.使用算法加密

4.利用鹽值更新密文

5.得到加密后的數(shù)據(jù)

編碼:字符串.encode(編碼名稱)——字節(jié)數(shù)據(jù)

解碼:字節(jié)數(shù)據(jù).decode(編碼名稱)——字符串?dāng)?shù)據(jù)

==========================================

使用python之MD5進(jìn)行加密

在許多接口,尤其涉及到金額的地方,都需要用加密算法對數(shù)據(jù)進(jìn)行加密。像密碼、金額之類的,如果不做加密,被篡改數(shù)據(jù),公司的損失會(huì)很大。

這里主要說MD5加密(即摘要算法),也就是采用哈希算法,將不定長度的內(nèi)容轉(zhuǎn)化為32位16進(jìn)制固定長度的內(nèi)容。前后臺(tái)都使用這套算法,再將兩者的加密數(shù)據(jù)比對,如果一致說明數(shù)據(jù)加密正確,否則數(shù)據(jù)可能出現(xiàn)篡改。

在pyhon里,可以導(dǎo)入hashlib進(jìn)行加密,如下

方法一:

執(zhí)行結(jié)果如下圖:

方法二:

執(zhí)行結(jié)果如下圖:

Python程序加密打包

步驟:

1、使用此文程序編譯python源程序?yàn)閜yd

鏈接:

2、編寫入口py文件,調(diào)用pyd模塊

注意點(diǎn):

1、由于pyinstaller不會(huì)導(dǎo)入pyd程序依賴包,所以需要將pyd程序依賴包在入口py文件中導(dǎo)入一次,避免打包exe時(shí)pyd無法使用

2、打包exe后,路徑有所變化,pyd中路徑需使用絕對路徑

3、pyd文件不要寫入口調(diào)用,if main等,在入口py文件中導(dǎo)包及調(diào)用相關(guān)函數(shù)

優(yōu)點(diǎn):脫離python環(huán)境,包依賴

缺點(diǎn):文件較大

步驟:

1、將入口py文件打包為exe可執(zhí)行程序,會(huì)自動(dòng)導(dǎo)入pyd文件并進(jìn)行封裝

注意點(diǎn):

1、打包exe后,cmd下運(yùn)行程序,看是否有錯(cuò)誤輸出,按提示解決相應(yīng)問題即可

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):???

'''''加密函數(shù),?加密后為一串?dāng)?shù)字'''?

return??"%d"?%?(self.__get_strascii(value,?True)?^?self.__key)???

def?decode(self,?pwd):???

'''''解密函數(shù)'''?

if?self.is_number(pwd):???

return?self.__get_strascii(?(int(pwd))?^?self.__key,?False?)???

else:???

print?'require?number.'?

def?reset_key(self,?key):???

'''''重新設(shè)置key'''?

self.__src_key?=?key???

self.__key?=?self.__get_strascii(self.__src_key,?True)???

#===============================================================================???

#????????內(nèi)部調(diào)用接口???

#===============================================================================???

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):???

'''''獲取單個(gè)字符的acsii碼值'''?

try:???

return?"%03.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?p??0:???

nRet?=?int(s[0?:?p])???

ls.append(?self.__get_ascii2char(nRet))???

pTmp?=?p???

while?pTmp??len(s):???

ls.append(?self.__get_ascii2char(?int(s[pTmp:?pTmp?+?3]))?)

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?=?n??256?

def?is_custom_ascii_range(self,?n):???

return?33?=?n?48?or?58?=?n??126?????????

class?Usage(object):???

'''''??

命令行參數(shù)讀取與解析??

'''?

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?+=?"""??

-??-help????????????????????print?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加密函數(shù) python 數(shù)據(jù)加密
網(wǎng)站鏈接:http://weahome.cn/article/hpjjhc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部