前言

我们经常在写程序的过程中需要给自己写一些敏感的信息,比如密码,那么我们如何给自己的密码加密呢?现在我们自己来给自己写一个加密和解密的程序

程序

# coding:utf-8

# !/usr/bin/env python

# Time: 2018/4/28 14:45

# Author: sty

# File: forbid_password.py

def encrypt(key, s): 
    b = bytearray(str(s).encode("gbk")) 
    n = len(b) # 求出 b 的字节数 
    c = bytearray(n*2) 
    j = 0 
    for i in range(0, n): 
        b1 = b[i] 
        b2 = b1 ^ key # b1 = b2^ key 
        c1 = b2 % 16 
        c2 = b2 // 16 # b2 = c2*16 + c1 
        c1 = c1 + 65 
        c2 = c2 + 65 # c1,c2都是0~15之间的数,加上65就变成了A-P 的字符的编码 
        c[j] = c1 
        c[j+1] = c2 
        j = j+2 
    return c.decode("gbk") 

def decrypt(key, s): 
    c = bytearray(str(s).encode("gbk")) 
    n = len(c) # 计算 b 的字节数 
    if n % 2 != 0 : 
        return "" 
    n = n // 2 
    b = bytearray(n) 
    j = 0 
    for i in range(0, n): 
        c1 = c[j] 
        c2 = c[j+1] 
        j = j+2 
        c1 = c1 - 65 
        c2 = c2 - 65 
        b2 = c2*16 + c1 
        b1 = b2^ key 
        b[i]= b1 
    try: 
        return b.decode("gbk") 
    except: 
        return "failed"

key = 30
s1 = encrypt(key, 'hello')
print(s1)

s2 = decrypt(key, s1)
print(s2)

输出

GHLHCHCHBH
hello

查考文档

http://blog.51cto.com/wangwei007/1108784

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐