Panel 发表于 2023-5-6 22:17

一套带混淆的本地验证算法




# 一套带混淆的本地验证算法

## 算法依据当前系统时间的月和日来校验,只不过带了很多垃圾字符混淆,详细逻辑看代码逻辑与注释

```cpp
#define_CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <windows.h>
#include <random>
#include <chrono>
#include <ctime>
#include <string>
#include <fstream>
using namespacestd;
//约定源验证位置
#define CHECK_FLAG 325
//密文生成长度
#define PWD_LENTH 1000


int main()
{
        //生成随机数种子
        random_device rd;// 用于获取随机种子
        mt19937 gen(rd()); // 使用Mersenne Twister 19937算法作为随机数生成器
        uniform_int_distribution<int> dis(0, 78); // 定义一个产生0到99之间均匀分布的整数的随机数分布器
        //生成密码表
        unsigned char passtable = { 0 };
        int j = 0;
        for (int i = 48 ;i<128; i++) {
                passtable = i;
                j++;
        }
        //生产PWD_LENTH位随机密码字符
        unsigned char password = { 0 };
        for (int i = 1; i < PWD_LENTH; i++) {
                password = passtable;
        }
        //约定第CHECK_FLAG=325位为起源验证字节
        //获取当前系统时间的月的第一位,号的第一位分别转为字符作为核心验证字节
        //325位的ascll码存了月的第一位存在位置,月所在位置的下一位又存了号的第一位所存在的位置
        chrono::system_clock::time_point now = chrono::system_clock::now();
        time_t time = chrono::system_clock::to_time_t(now);
        tm local_time = *localtime(&time);
        int month = local_time.tm_mon + 1;// 获取当前月份,并加1(因为tm_mon的取值范围是0-11)
        int day = local_time.tm_mday;
        char month_digit = to_string(month).c_str();
        char day_digit = to_string(day).c_str();
        int month_loc = password;
        password = month_digit;
        int day_loc = password;
        password = day_digit;
        //将密文写出为password.txt
        fstream pwdtxt;
        pwdtxt.open("password.txt", ios::binary |ios::out);
        for (int i = 0; i< PWD_LENTH; i++) {// 循环写入字符
                pwdtxt.put(password);
        }
        pwdtxt.close();
}
```

## 生成密文:




##

## 可以根据上述的代码写出应用端的校验,也可以根据自己的需求改。


wuailaoyan 发表于 2023-5-6 22:40

感谢朋友分享,学习了。

泥河湾メ~晓亮﹀ 发表于 2023-5-7 07:36

感谢楼主分享

deffedyy 发表于 2023-5-7 08:00

这个还行,感谢分享

chanly 发表于 2023-5-7 18:56

感谢分享,也要考虑人性化

LvE 发表于 2023-5-7 19:31

谢谢分享。。。楼主厉害。。。

moyuxuan 发表于 2023-5-10 11:06

感谢分享,很有用

XZ1314XZ 发表于 2023-5-11 01:38

可以还原的吗,有没有还原的脚本

Panel 发表于 2023-5-11 10:00

XZ1314XZ 发表于 2023-5-11 01:38
可以还原的吗,有没有还原的脚本

解密就是按照这个规则解就行了

gzxjm2000 发表于 2023-5-12 11:29

真是看到加密后的结果都望而却步,多谢楼主分享啊
页: [1] 2
查看完整版本: 一套带混淆的本地验证算法