本帖最后由 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;
- }
复制代码
可以弹出选择窗口来进行选择,用来微信群蛐蛐人或只想让朋友看见的文件是绝对给力的。基本无法暴力破解,抗彩虹表。密钥文件没有这个程序也是无法查看的,拥有校验能力。拖入密钥文件自动解密需要解密的文件(需要把文件放入你朋友的加密目录下)只要双方都有这个程序就行,这个程序可以私发给对方
不是病毒,没有私钥!
|