�У���Ϊ�����ƴӸ��Ͼ��Dz���ȫ�ģ���Ϊ�ͻ���ͬ���ܹ������ע���룩����
�Ҵ��ڶԳ�ʧ�ܵ����⡣
�Ƚϱ��յķ������÷ǶԳƼ����㷨4ʵ�֡��û���һ�˽�һЩ��Ϣ�������û�
����һ��hash���������̵Ļ���ֱ���ù�4Ҳ�У�������������������
�Լ���˽Կǩ��֮���ǩ��ء��ͻ��˳��й�Կ�����ù�Կ��֤���ǩ�����ʵ
�ԡ����Կ���ѡ�õ��㷨��RSA����Բ���ߵȡ�
> �ұȽϵ��Ŀͻ�ͨ��md5�㷨��f���4N������ע�����ʧЧ��
--
Xin LI <del...@delphij.net> http://www.delphij.net/
FreeBSD - The Power to Serve! Live free or die
loseblue �:
> ������һ�������ע������֤���û��ṩ�û������ṩע���롣�û�ͨ���û�
> ���ע����ʹ�����
>
> �û���ȫ�������֡�
>
> �ҵ�˼·���Ƚ��û���ת��Ϊ���֣�Ȼ���һ����N��Ȼ��md5���ܣ����ص�ֵ��
> Ϊע������û���
>
> ��֪�������ܲ����е�ͨ���Ƿ���������
>
> �ұȽϵ��Ŀͻ�ͨ��md5�㷨��f���4N������ע�����ʧЧ��
> --
> 4��: `python-cn`:CPyUG ~ �����û��� | ����:pyth...@googlegroups.com
> �˶�: http://tinyurl.com/45a9tb //���163/qq����:http://tinyurl.com/4dg6hc
> ����: https://groups.google.com/group/python-cn
> ����: ����б�! �ǻ�����! http://wiki.woodpecker.org.cn/moin/AskForHelp
你密码学没学过么?如果按照你的这个算法,客户那里只要知道这个方法,连暴力
破解都不需要。因为你需要客户那里也计算一遍同样的值,计算过程中,这个N是
写死在代码中的。用ida反向一下就有了...
我推荐你使用公钥体系进行验证,客户那里提供用户名,你用你的私钥加密用户
名。软件用你的公钥解密用户名,一致就注册通过。由于用户没有你的私钥,因此
无法破解。但是这样的方法很容易遭到暴力破解,即通过修改判断语句,让你的判
断失效。
更强的方案是将一段代码嵌入到你的注册文件中,通过公钥解密注册文件后,验证
头部和用户名一致。而后将后面的代码应用到应用程序的某个代码段上去(具体方
法各有不同)。如果客户不进行注册,那么他面对的就不是破解问题,而是猜你程
序中缺失的代码怎么写了...
当然,这个方法,只要买一个密钥一样可以暴力破解。
所以,完美的方案是将核心逻辑移到网络上做。
loseblue 写道:
> 我想做一个软件带注册码认证。用户提供用户名,我提供注册码。用户通过用户
> 名和注册码使用软件
>
> 用户名全部是数字。
>
> 我的思路是先将用户名转换为数字,然后加一个数N,然后md5加密,返回的值作
> 为注册码给用户。
>
> 不知道这样能不能行的通?是否有隐患。
>
> 我比较担心客户通过md5算法暴力算出来N。导致注册控制失效。
> --
> 来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:pyth...@googlegroups.com
> 退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
> 详情: https://groups.google.com/group/python-cn
> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:pyth...@googlegroups.com
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
我想做一个软件带注册码认证。用户提供用户名,我提供注册码。用户通过用户名和注册码使用软件
用户名全部是数字。
我的思路是先将用户名转换为数字,然后加一个数N,然后md5加密,返回的值作为注册码给用户。
不知道这样能不能行的通?是否有隐患。
我比较担心客户通过md5算法暴力算出来N。导致注册控制失效。
不够,因为加密狗其实只是个简单的函数而已,复制加密狗函数直接成为本地软件即可。虽然成本也很高,但是可以象注册机一样的传播。
本地加密从理论上是永不可能完整安全的。你有访问加密狗的代码,我可以修改可以跳过。可以用本地软件函数实现其中功能。——除非,你软件的全部功能都做在加密狗里面。——否则,只加密少量简单函数没意义。
> 网络加密是最可靠的,极端的情况就是你把核心功能全做在服务器上,程序只是做数据的计算和提交,服务器返回结果而已。那破解的唯一方法就是黑掉你的服务器了。
这个道理一样,如果你的网络只提供“认证注册”功能,那么我完全可以架个私服替换掉你的服务器,因为作为我的本机来讲。访问哪个服务器是我自己控制的。——除非你的程序的主要功能都在网络远端。然而那就不是本地程序加密的范畴了。
--
2009/12/30 loseblue <lose...@gmail.com>:
> --
> 来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:pyth...@googlegroups.com
> 退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
> 详情: https://groups.google.com/group/python-cn
> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp