本帖最后由 3ER4 于 2025-4-19 16:46 编辑  
 
闲着没事写的,有一些加密方法求助了ai,如argon2等,整体自己编的,整体不开源,应为作者信息怕被改导致问题。其中有些加密方法是自制的,也不排除已经有人使用 
头文件: 
			
			
			- #include <iostream>
 - #include <fstream>
 - #include <vector>
 - #include <string>
 - #include <numeric>
 - #include <algorithm>
 - #include <random>
 - #include <windows.h>
 - #include <commdlg.h>
 - #include <wincrypt.h>
 - #include <array>
 - #include <cmath>
 - #include <shellapi.h>
 - #include <shlobj.h>
 - #include <map>
 - #include <conio.h>
 
  复制代码 由于SHA-3我没有他的头文件,只做了一个简化版 
- vector<uint8_t> SHA3Hash(const vector<uint8_t>& input) {
 -         constexpr size_t hashSize = 32;
 -         vector<uint8_t> hash(hashSize, 0);
 - 
 -         for (size_t i = 0; i < input.size(); ++i) {
 -                 hash[i % hashSize] ^= input[i];
 -                 hash[(i + 11) % hashSize] += input[i] * 3;
 -                 hash[(i + 19) % hashSize] ^= (input[i] << 4) | (input[i] >> 4);
 -         }
 - 
 -         for (size_t i = 0; i < hashSize; ++i) {
 -                 hash[i] = (hash[i] * 0x1F) ^ 0xA5;
 -         }
 - 
 -         return hash;
 - }
 
  复制代码 接下来是Argon2抗GPU暴力破解简化版(求助AI) 
- vector<uint8_t> Argon2Derive(const string& key, const vector<uint8_t>& salt, int shift) {
 -         constexpr size_t outputSize = 32;
 -         vector<uint8_t> state(outputSize * 1024);
 - 
 -         for (size_t i = 0; i < key.size(); ++i) {
 -                 state[i % state.size()] ^= key[i];
 -         }
 -         for (size_t i = 0; i < salt.size(); ++i) {
 -                 state[(i + key.size()) % state.size()] ^= salt[i];
 -         }
 - 
 -         for (int round = 0; round < 3; ++round) {
 -                 for (size_t i = 0; i < state.size(); ++i) {
 -                         size_t j = (i * 17 + round * 7) % state.size();
 -                         state[i] = (state[i] + state[j] * 3 + round) % 256;
 -                 }
 -         }
 - 
 -         vector<uint8_t> result(outputSize);
 -         for (size_t i = 0; i < result.size(); ++i) {
 -                 result[i] = state[(i * 19) % state.size()];
 -                 result[i] = (result[i] + shift) % 256;
 -         }
 - 
 -         return result;
 - }
 
  复制代码 可以弹出选择窗口来进行选择,用来微信群蛐蛐人或只想让朋友看见的文件是绝对给力的。基本无法暴力破解,抗彩虹表。密钥文件没有这个程序也是无法查看的,拥有校验能力。拖入密钥文件自动解密需要解密的文件(需要把文件放入你朋友的加密目录下)只要双方都有这个程序就行,这个程序可以私发给对方 
不是病毒,没有私钥! 
 
 |