Open GoogleCodeExporter opened 8 years ago
我下载了0.6(不是SP1)版本,注意到里面的加密和解密函数�� �基于密钥对数据的异或的。这样不安全。例如一旦知道明文- 密文对,就知道了全部密钥。或者根据概率分析也能找出密�� �。这属于经典密码学的范畴。 虽然大多数服务器可能没有mcrypt,而自己用PHP写一个加密函�� �可能在性能上又有问题(例如使用phpseclib),但是还有一种� ��密方法: 用MD5函数(更好的是SHA1)处理一系列计数器字符串(例如:z mphfrpk_SECRETKEY_0001,zmphfrpk_SECRETKEY_0002...),这样同样可以产生� ��够长的用于异或的数据流,而且如果散列函数做得足够好( SHA1足够好了),数据流就是伪随机的。之后得到的随机流和� ��据流异或得到密文。 ——这个方法(CTR模式的变种)类似Salsa20算法的思想,算是� ��较强壮的加密技术。 ——在这个过程中,密钥是SECRETKEY, zmphfrpk是和会话相关的随机参数。在加密和解密过程中,SECRET KEY都是秘密参数,但是zmphfrpk是附加的公开参数(可以附加在 密文开头)。 服务器和客户端通信时,SECRETKEY可以使用配置文件中固定的�� �然后随机参数在会话初始化时交换即可(注意使用SECRETKEY作� ��密钥的HMAC方法认证这个随机参数,HMAC函数应该是服务器自� ��的,即使不是,自己写一个也相当简单)。 另外我有意申请开发基于Python的客户端程序。
Original issue reported on code.google.com by nemoship...@gmail.com on 27 Oct 2012 at 5:44
nemoship...@gmail.com
Original issue reported on code.google.com by
nemoship...@gmail.com
on 27 Oct 2012 at 5:44