python實現(xiàn)無證書加密解密實例
本文實例講述了python實現(xiàn)無證書加密解密的方法,分享給大家供大家參考。具體實現(xiàn)方法如下:
無證書加密就是雙方不需要維護證書,加密與解密只需要雙方約定一個key就可以,無證書加解密的方式應(yīng)用更廣泛一些,python官方也有這方面的相關(guān)例子說明,地址是:https://pypi.python.org/pypi/pycrypto,主要用的是from Crypto.Cipher import AES這個模塊,代碼如下:
/**
* AES加密字符串
*
* @param string data 加密的串
* @param string key 密鑰(只能是16、24、32位)
* @param string iv 16位長度向量
* @param bool 編碼格式(true:base64 / false:十六進制)
* @return string 加密后的結(jié)果
*/
'''
def encrypt_mode_cbc(data, key, iv = 'www.dbjr.com.cn!!', base64 = True):
lenth = len(data)
num = lenth % 16
data = data.ljust(lenth + 16 - num)
obj = AES.new(key, AES.MODE_CBC, iv)
result = obj.encrypt(data)
return result.encode('base64') if base64 is True else result.encode('hex')
encrypt = encrypt_mode_cbc('hello geekso', 'www.dbjr.com.cn!!')
print encrypt
'''
/**
* AES解密字符串
*
* @param string encrypted 待解密的串
* @param string key 密鑰
* @param string iv 16位長度向量
* @param bool 編碼(true:base64 / false:十六進制)
* @return string 解密后的結(jié)果 or bool
*/
'''
def decrypt_mode_cbc(encrypted, key, iv = 'www.dbjr.com.cn!!', base64 = True):
encrypted = encrypted.decode('base64') if base64 is True else encrypted.decode('hex')
if encrypted is not '':
obj = AES.new(key, AES.MODE_CBC, iv)
return obj.decrypt(encrypted)
else:
return False
print decrypt_mode_cbc(encrypt,'www.dbjr.com.cn!!')
exit()
希望本文所述對大家的Python程序設(shè)計有所幫助。
相關(guān)文章
Python?matplotlib繪制散點圖配置(萬能模板案例)
這篇文章主要介紹了Python?matplotlib繪制散點圖配置(萬能模板案例),散點圖是指在??回歸分析???中,數(shù)據(jù)點在直角坐標系平面上的?分布圖???,散點圖表示因變量隨??自變量???而?變化???的大致趨勢,據(jù)此可以選擇合適的函數(shù)??對數(shù)???據(jù)點進行?擬合2022-07-07Python基于Google?Bard實現(xiàn)交互式聊天機器人
這篇文章主要為大家介紹了Python基于Google?Bard實現(xiàn)交互式聊天機器人示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03