直接贴测试代码
import base64
p = b'123456'
print('password: %s' % p)
salt = b'84'
print('salt: %s' % salt)
print('reverser:')
p = p[::-1]
print(p)
print('encode:')
p = base64.b64encode(p, salt)
print(p)
print('reverser:')
p = p.strip(b'=')[::-1]
print(p)
print('encode:')
p = base64.b64encode(p, salt)
print(p)
print('reverser:')
p = p.strip(b'=')[::-1]
print(p)
print('\ndecode password')
print('reverser:')
rp = p[::-1] + b'=='
print(rp)
print('decode:')
rp = base64.b64decode(rp, salt)
print(rp)
print('reverser:')
rp = rp[::-1] + b'=='
print(rp)
print('decode:')
rp = base64.b64decode(rp, salt)
print(rp)
print('reverser:')
rp = rp[::-1]
print(rp)
输出结果:
encode:
NjU0MzIx
reverser:
xIzM0UjN
encode:
eEl6TTBVak4=
reverser:
4kaVBTT6lEe
decode password
reverser:
eEl6TTBVak4==
decode:
xIzM0UjO
reverser:
OjU0MzIx==
decode:
:54321
reverser:
12345:
在第一次反转解码的时候就出错了, 本来是想在 sqlite 里保存一些可逆的加密字符
想着两次 b64 反转加密应该不容易猜, 结果这个 salt 就出了问题
不指定 salt, 就不会出先这种问题
现在想问一下, 有哪些好用的可逆的加密库, 最好是标准库
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.