一般密钥不会直接写在代码中,如果一定要这么做,也不要直白的展示,如:key = “aks123”,
如果非要在代码中写入,可以稍微委婉隐晦一点,如
int main()
{
// 一般用于代码中的密钥,比 __strt = "kjadkas12345" 这种模式隐蔽,相对安全,但是,在高手面前并没什么鸟用
int xa[] = { 3478,1493, 4800, 2195, 9938, 1305, 289, 3454};
int xoffset1 = 547;
int xoffset2 = 184;
int p1 = sizeof(xa);
int p2 = sizeof(xa[0]);
// 获取数组元素个数(也就是最终生成密钥的位数)
int xsize = sizeof(xa) / sizeof(xa[0]);
// accii表 数字、大小写英文字母【0-9】【A-Z】【a-z】
int ku[] = { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122};
// 获取数组元素个数
int kusize = sizeof(ku) / sizeof(ku[0]);
std::string __strt = "";
for (int i = 0; i < xsize; i++)
{
// 原理:任意数取余,范围都在 [0 - kusize) 区间
int pos = (xa[i] + xoffset1) % kusize;
//字符串组合获取到的accii字符
__strt += (char)(ku[pos]);
//扰乱任意数
xoffset1 = xa[i] + xoffset2 + i;
}
密钥