Python---暗号解読(hashlib、rsa)
2976 ワード
hashlibモジュール暗号化
RSA暗号化/復号化、署名/検証
登録時パスワード暗号化とログイン時パスワード検証
import hashlib
new_md5 = hashlib.md5() # hashlib md5
new_md5.update("python") # md5 , md5 。
result = new_md5.hexdigest() # hexdigest() , new_md5 16 md5 。
print result # :23eeeb4347bdd26bfc6b7ee9a3b755dd
# :md5, sha1, sha224, sha256, sha384, sha512
# new_md5 = hashlib.md5()
# new_sha1 = hashlib.sha1()
# new_sha256 = hashlib.sha256()
import hashlib,time
new_md5 = hashlib.new('md5', b'python').hexdigest()
print new_md5 # :23eeeb4347bdd26bfc6b7ee9a3b755dd
new_md5 = hashlib.md5("python".encode('utf-8')).hexdigest()
print new_md5 # :23eeeb4347bdd26bfc6b7ee9a3b755dd
import hashlib
# yan = "! # % ^ @" #
yan = "salt"
pwd = "python"
md5_pwd = hashlib.md5()
md5_pwd.update((pwd+yan).encode('utf-8')) #
pwd = md5_pwd.hexdigest()
print pwd
#pwd = hashlib.new('md5',(pwd+yan).encode('UTF-8')).hexdigest() # 。
# :https://www.cnblogs.com/sly27/p/8716626.html
# -*- coding:utf-8 -*-
import hashlib
def hashStr(strInfo):
h = hashlib.sha1()
h.update(strInfo.encode("utf-8"))
return h.hexdigest()
result = hashStr("hello word")
print result
RSA暗号化/復号化、署名/検証
# -*- coding:utf-8 -*-
import rsa
# : RSA
(pubkey, privkey) = rsa.newkeys(1024)
# ( )
with open('public.pem', 'w+') as f:
f.write(pubkey.save_pkcs1().decode())
with open('private.pem', 'w+') as f:
f.write(privkey.save_pkcs1().decode())
#
with open('public.pem', 'r') as f:
pubkey = rsa.PublicKey.load_pkcs1(f.read().encode())
with open('private.pem', 'r') as f:
privkey = rsa.PrivateKey.load_pkcs1(f.read().encode())
#
message = "python"
# ,
crypto = rsa.encrypt(message.encode(), pubkey)
# ,
message = rsa.decrypt(crypto, privkey).decode()
print message
message = " !"
#
signature = rsa.sign(message.encode("utf-8"), privkey, 'SHA-1')
# : 、 , ,
result = rsa.verify(message.encode("utf-8"), signature, pubkey)
print result
# :https://www.cnblogs.com/hhh5460/p/5243410.html
# :https://blog.csdn.net/u013421629/article/details/83895861
登録時パスワード暗号化とログイン時パスワード検証
# -*- coding:utf-8 -*-
from passlib.hash import pbkdf2_sha512
# love ,love ,password_hash 。
password_hash = pbkdf2_sha512.encrypt("love")
print password_hash # :$pbkdf2-sha512$25000$wnjvvdf6XytFyHlPyVkLAQ$2kL4UztPbWoQmblT4TRxOUoCiDNYvSwGd1EYOWcqhrYUpH9MXHfzaFFw3fGyRsfIZy8SDlXD1HP2U4AlIsdBTA
# love ,love ,password_hash 。
result = pbkdf2_sha512.verify("love", password_hash)
print result # :True