Encryption 如何生成与产品序列号(CPU-ID)相关的确认密钥以复制保护我自己的软件

Encryption 如何生成与产品序列号(CPU-ID)相关的确认密钥以复制保护我自己的软件,encryption,cpuid,Encryption,Cpuid,我已经编写了一个软件,在该软件中,我将读取CPU-ID,并将CPU-ID作为软件串行密钥显示给用户,它将请求确认密钥以登录软件。用户必须将该CPU-ID(串行密钥)发送给我,以便我生成确认密钥并将其发送回用户登录 我正在使用Linux和C 这是我用来获取CPU-ID的代码 样本CPU-ID如下所示:0103-06A9-0123-0100-8974-4587 如果有人能帮我生成一个简单的加密序列号并生成一个确认密钥,我将不胜感激。多谢各位 注意:如果按键以可读格式显示,则效果更佳。。i、 没有特殊

我已经编写了一个软件,在该软件中,我将读取CPU-ID,并将CPU-ID作为软件串行密钥显示给用户,它将请求确认密钥以登录软件。用户必须将该CPU-ID(串行密钥)发送给我,以便我生成确认密钥并将其发送回用户登录

我正在使用Linux和C

这是我用来获取CPU-ID的代码

样本CPU-ID如下所示:0103-06A9-0123-0100-8974-4587

如果有人能帮我生成一个简单的加密序列号并生成一个确认密钥,我将不胜感激。多谢各位

注意:如果按键以可读格式显示,则效果更佳。。i、 没有特殊的字符

char CPU[30]; //24 Hex digits, PROCESS_SERIAL_NUM
int varEAX, varEBX, varECX, varEDX;
char str[9];
__asm__ __volatile__ ("cpuid"   : "=a" (varEAX), "=b" (varEBX), "=c" (varECX), "=d" (varEDX) : "a" (1));
sprintf(str, "%08X", varEAX); //i.e. XXXX-XXXX-xxxx-xxxx-xxxx-xxxx
sprintf(CPU, "%C%C%C%C-%C%C%C%C", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7]);
__asm__ __volatile__ ("cpuid"   : "=a" (varEAX), "=b" (varEBX), "=c" (varECX), "=d" (varEDX) : "a" (3));
sprintf(str, "%08X", varEDX); //i.e. xxxx-xxxx-XXXX-XXXX-xxxx-xxxx
sprintf(CPU, "%s-%C%C%C%C-%C%C%C%C", CPU, str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7]);
sprintf(str, "%08X", varECX); //i.e. xxxx-xxxx-xxxx-xxxx-XXXX-XXXX
sprintf(CPU, "%s-%C%C%C%C-%C%C%C%C", CPU, str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7]);

printf("%s\n", CPU); //compare with: lshw | grep serial:

我的Cpu序列号是
序列号:由O.E.M.填写。
你打算如何处理?你说得对,Rolf,Cpu-ID将是制造商填写的唯一ID。现在我们需要一个算法来生成一个与特定CPU-ID相关的确认密钥。我的观点是,我的电脑似乎没有CPU ID,但磁盘有序列号,有NIC地址,但可以更改。