功能适用场景:当你希望你编写的程序只被特定的用户使用,即使这些程序被复制到另一台终端(表示客户端,下文也如此)也无法运行(新的终端需要购买许可码),而你又不想写一个完整的用户注册,验证流程,那么本文的小功能将能帮助你。

本文的方法通过 获取终端的UUID,并对其进行MD5加密,然后对服务端进行请求,根据服务端的反馈来判断是否验证成功。

Python(使用了新的特性,需要python版本在3.5以上)实现如下:

将导入的函数或模块添加一个下划线前缀是作者的一个编程习惯,用于表示该函数或模块可被替代。

上面代码中导入了 uuid1() 函数 和 md5类,用于获取终端的 uuuid 和 md5加密,而requests是一个比较常见的web请求库。

先写一个简单的 md5 加密函数:

auth_md5返回字符串的md5值,auth_double_md5则是返回进行了2次md5加密的md5值。注意这里,作者使用的3.5版本的新特性,如果你的python版本低于3.5可能需要修改一下。

定义一些常量:

从变量名的字面意思就可知道用来干嘛。

定义了一个 类,有两个方法;_write_uuid_to_file ()会在程序的当前目录下创建创建一个 client.txt文件,写入 MD5后的uuid序列。而auth()方法是用来验证终端的合法性。

本文所指的uuid,其实是 uuid库中,uuid1()函数返回的字符串序列的后12位,这12位指的是什么有兴趣的朋友可以自行百度。

验证方法很简单,就是向服务器发送一个http请求,请求文件就是我们得到的加密字符串序列,这里还使用的.html扩展名。如果服务器返回200 ok,则表示验证成功,否则表示失败。

这个功能很简单,可以说没什么安全性,只需要自行建立一个DNS服务,就可对程序进行欺骗。

下面给出完整的程序,以及测试代码,你可将代码保存为独立的python文件,以库的方式供程序调用:

Python QQ交流群:391746263

perfcode.com 保留所有权;如需转载,请注明出处。