【发布时间】:2015-04-23 05:50:24
【问题描述】:
我一直在使用它来散列我的密码,但我觉得它不是很安全。我一直在谷歌搜索,看看是否有人使用它解密了一个字符串。这是加密算法,我不确定如何反转数学来解密哈希。欢迎任何帮助。这是 C++ 中的加密器。
编辑:我确实计划切换到更安全的哈希密码方法,但是为了做到这一点,我需要在转换为新的哈希 SHA256 字符串之前反转数学以将其转换为纯文本。这里的人似乎不理解我,我知道这是不安全的,这只是在 c++ 中展示算法。它实际上是针对不同的语言。我受限于我能做的事情以及我如何用那种语言做这件事。
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char hasher[256];
cout<< "Input a string!"<<endl;
cin>> hasher;
cout << endl;
for(int x=0; x < strlen(hasher); x++)
{
hasher[x] += (3^x) * (x % 15);
if(hasher[x] > (255))
{
hasher[x] -= 256;
}
}
cout << hasher << endl;
system("pause");
return 1;
}
【问题讨论】:
-
它是一个加密字符串。对不起。
-
您的
char类型是否超过8 位?否则,hasher[x] > (255)永远不会为真。 -
我不确定。所有 char 类型都是 8 位正确的?
-
顺便说一句,您的加密字符串中可能有 char 0(例如每 15 个字符),导致 cout 和其他函数只考虑其中的一部分。
-
已删除安全代码。只需尝试单击答案下方的已编辑链接。 @amal
标签: c++ encryption hash