Skip to content

Instantly share code, notes, and snippets.

@lyhapple
Last active December 17, 2015 22:49
Show Gist options
  • Save lyhapple/5684375 to your computer and use it in GitHub Desktop.
Save lyhapple/5684375 to your computer and use it in GitHub Desktop.
使用AES算法,对用户输入的密码进行加解密.
#coding=utf-8
# Created with PyCharm.
# Author: liyinhui
# Date: 13-5-31
# Time: 下午1:49
# 基于PyCrypto库实现
import base64
from Crypto.Cipher import AES
iv = "fedcba9876543210"
def transform_key(user):
keys = [x for x in "rzrk.keyrzrk.key"]
length = len(keys) if len(keys) < len(user) else len(user)
for i in range(length):
keys[i] = chr(ord(keys[i]) + ord(user[i]))
key = "".join(keys)
return key
def encrypt(user, password):
"""
对用户密码进行加密
:param user: 用户名称
:param password: 密码
"""
key = transform_key(user)
pAesCipher = AES.AESCipher(key, AES.MODE_CBC, iv)
encrypt_value = pAesCipher.encrypt("%16s" % password)
if len(encrypt_value) != len("%16s" % password):
return password
result = base64.urlsafe_b64encode(encrypt_value)
print result
return result
def decrypt(user, password):
"""
对用户的密码进行解密, 先解码, 再用AES解密
:param user: 用户名称
:param password: base64编码的用户密码
"""
encrypt_value = base64.urlsafe_b64decode(password)
key = transform_key(user)
pAesCipher = AES.AESCipher(key, AES.MODE_CBC, iv)
decrypt_value = pAesCipher.decrypt("%16s" % encrypt_value)
print decrypt_value.strip()
if __name__ == "__main__":
user = "00131aaaa"
password = "123456"
encode_pwd = encrypt(user, password)
decrypt(user, encode_pwd)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment