几种加密字符串的方法

PYTHONSHELLLINUX2010-11-22 06:45

我的GTalk(下面这条是终端命令):
dc -e 9180639392311574874582626294457302804032778P

第一种:[ Python 与 Bash Shell 的结合 ]
这个命令会让你输入一个字符串,然后会再输出一串加密了的数字。

加密代码[照直输入]:
python -c 'print reduce(lambda a,b: a*256+ord(b), raw_input("string: "), 0)'

解密代码[数字后+P]:
dc -e 输出的数字P #注意要有最后的大写P字母

第二种:[ 应该是纯 Bash Shell,含 VIM 的 xxd ]
用 gtalk@gmail.com 作为明文,加密分两步,当然了,也是可以一步过的~

加密代码:
1、echo "gtalk@gmail.com" |xxd -ps -u
得到:6774616C6B40676D61696C2E636F6D0A
2、echo "ibase=16; 6774616C6B40676D61696C2E636F6D0A" |bc
得到:137514765985002236391382606438443478282

一步加密代码:
echo "ibase=16; $(echo 'gtalk@gmail.com' |xxd -ps -u)" |bc
得到:137514765985002236391382606438443478282

解密代码:
3、dc -e 137514765985002236391382606438443478282P #注意要有最后的大写P字母
得到:gtalk@gmail.com

第三种:[ Base64 编码,这个很好很强大,适合写加密脚本 ]
同样用 gtalk@gmail.com 作为明文,来看代码:

加密代码:
echo "gtalk@gmail.com" |base64 -i
得到:Z3RhbGtAZ21haWwuY29tCg==

解密代码:
`echo "Z3RhbGtAZ21haWwuY29tCg==" |base64 -d
得到:gtalk@gmail.com

第四种:[既然说到了Python,也提到了Base64,那么再来一种 ]
同样用 gtalk@gmail.com 作为明文,来看代码:

加密代码:
python -c "import base64; print base64.encodestring('gtalk@gmail.com')[:-1]"
得到:Z3RhbGtAZ21haWwuY29t

解密代码:
echo "Z3RhbGtAZ21haWwuY29t" |base64 -d
得到:gtalk@gmail.com

之所以比第三种Base64转换出来的字符串短,是因为少了回车换行符的原因。


原文链接: http://blog.jtwo.me/some-ways-to-encrypt-string