自己晒点儿盐用

简介: [本文出自天外归云的博客园] 自用加盐代码如下: # coding:utf-8 import uuid from functools import reduce def salt(num): if num

[本文出自天外归云的博客园]

自用加盐代码如下:

# coding:utf-8
import uuid
from functools import reduce

def salt(num):
    if num<33333:
        num = 3*(num+3)
        num = salt(num)
    return num

def encrypt(_str,password):
    keys = []
    for char in _str:
        if char.isalpha():
            key = ord(char)-96
        else:
            key = salt(ord(char))
        keys.append(str(key))
    return password.join(keys)

def dec_mac(get_mac_address):
    def wrapper(password):
        password = str(password)
        return str(reduce(lambda x, y: x*y,[int(one)*3 for one in encrypt(password,password).join(encrypt(get_mac_address(),password)) if int(one)!=0])).strip("0") 
    return wrapper

@dec_mac
def get_mac_address():
    mac=uuid.UUID(int = uuid.getnode()).hex[-12:] 
    ret = ":".join([mac[e:e+2] for e in range(0,11,2)])
    return ret.lower()

if __name__ == '__main__':
    key = "kdfhb234kus3"
    salt_mac = get_mac_address(encrypt(key,"3"))
    with open("cipher","w") as cipher:
        cipher.write(salt_mac)

造盐函数,将盐输出到本地cipher文件。

查盐函数,读取cipher文件中的盐并校验,如果和造盐函数产出的盐不一样,则返回False:

def check_salt():
    key1 = "dkfjasdlkfj"
    key2 = "5"
    salt_mac = get_mac_address(encrypt(key1,key2))
    root_path = os.path.dirname(os.path.dirname(__file__))
    cipher_path = os.path.join(root_path,"cipher")
    with open(cipher_path,"r") as cipher:
        content = cipher.read()
        if content != salt_mac:
            return False

用途:本盐是用来与mac地址绑定的,加盐的目的是对程序进行mac地址绑定,非指定机器不能运行。在客户端生成加盐文件后删除加盐程序,程序在该客户端可以运行,在其他客户端不可以运行。

关键:加盐器中的key和查盐器中的key要对上才能返回True,所以即使知道加盐的逻辑不知道查盐函数中的key也是不行的。所以要对查盐函数的代码想通过转编译、复杂逻辑等方法进行保护。如果逆向成本高于正向成本,保护基本可以认为是有效的。

相关文章
|
前端开发 数据库
贼无聊的文章
贼无聊的文章
45 0
|
数据安全/隐私保护 图形学 Windows
推荐五款宝藏软件,身为宝藏男孩和宝藏女孩的你,不试一下吗?
今天带来五款宝藏软件,身为宝藏男孩和宝藏女孩的你们,不试一下吗?
202 0
推荐五款宝藏软件,身为宝藏男孩和宝藏女孩的你,不试一下吗?
|
小程序 数据库
喜欢看球,那就手撸一个看球小程序系统
一,系统展示;二,小程序端代码;三,后端代码;四,数据库;五,手把手教你学习
123 0
喜欢看球,那就手撸一个看球小程序系统
|
算法 前端开发 搜索推荐
学编程的 3 个正经建议,学弟学妹们记得收藏呀,这波赚大发了!
学编程的 3 个正经建议,学弟学妹们记得收藏呀,这波赚大发了!
160 0
|
域名解析 JavaScript 开发工具
他来了,他来了,抱着一个西瓜走过来了!
把开源的大西瓜搬到云开发平台部署起来需要多久?1分钟!把西瓜搬到云开发平台总共分几步,只需三步,下载、上传,部署!也可以继续在CloudIDE中对游戏源码进行一些魔改哦。希望大家过年玩的开心!
989 0
他来了,他来了,抱着一个西瓜走过来了!
|
存储 程序员
这个颜值逆天的姑娘,居然是一枚程序员!(多图慎入,内有彩蛋)
在2016年阿里云年会上,一位清纯美丽、身材高挑、健康阳光的“维秘天使”闪亮登场,令现场的阿里云汉子们按耐不住心中的激荡,惊呼“女神”驾到! 如今随着网络的传播,这位阿里云女神已经在IT圈掀起了小小的波澜,不仅是阿里人,很多技术小伙伴都加入了她的粉丝圈,纷纷询问,这位女神到底是谁?  今天,我们就
20741 0
|
小程序 C# 程序员
七夕快到了!表白小程序制作详解,撩翻你的女神!
大家可能都会在抖音上刷过,那种表白小程序,但在我看来表白还是亲口说出来比较好,这类小程序只适合在平常的一些小节日给对方一个惊喜。话不多说,现在进入正题:         首先,要在电脑上安装微软的编译软件,我这里是使用的VS2017,安装的时候如果没有别的需要,直接选择下载wpf的组件就好。
1885 0
爸爸生活一瞥
  2017年7月13日18:30左右,表哥开车送我到家门口,正碰上爸爸手上拿着一把斧头准备出门。
1018 0