1
vcex 2013-12-06 00:54:48 +08:00 via Android
不懂py,我用过纯js的,你去我网站看看,那个交易—工具里面就是rc4
|
3
zorceta 2013-12-06 11:00:34 +08:00 via Android
RSA的计算中有个量也不是必须固定的,导致加密结果不固定。
这个是由算法决定的。 |
5
g0t3n OP @clowwindy 亲,我也围观了你shadow socks 的encrypt代码发现也是m2crypto的,能帮忙解答下问题么~
|
6
clowwindy 2013-12-06 15:12:26 +08:00
RC4 本身就是流加密,不支持设置 IV。每次加密必须使用不同的 key。
|
7
g0t3n OP @clowwindy 但是使用相同的key和plaintext,得到的密文在不同的环境都是不同的结果。。。就想到纠结了
结果如下 # cat test.py import encrypt print repr(encrypt.encrypt("\x05\x01\x00", key="123456")) # python test.py '\xf6\x1df' # ipython In [1]: import test '0a/' In [2]: import encrypt In [3]: print repr(encrypt.encrypt("\x05\x01\x00", key="123456")) '0a/' encrypt的代码: def encrypt(buf, key, iv="123456"): cipher = Cipher(alg='rc4', key= key, iv=iv, op=1, d='md5', key_as_bytes=0) cipher.set_padding(padding=0) v = cipher.update(buf) v = v+cipher.final() out = "" for i in v: out += "%02x" % (ord(i)) #if __DEBUG__: # print out return v |