我试图在加密/解密程序中使用完整用户输入的字符串作为密钥。我也试图弄清楚如何输出加密作为原始输入的单词但只是空格,然后再次加密(解密)以使单词恢复正常。
因此,例如用户可以输入他们自己的句子(hello world)和他们自己的密钥(testkey),然后程序使用testkey对其进行加密,输出结果为" h e l l o w o r l d"例如。然后再次加密并返回" hello world。"
即使您可以帮助获取密钥或加密输出的用户输入,也可以获得任何帮助。谢谢!
#include <iostream>
#include <cstring>
using namespace std;
int main(){
string sentence = "";
string encrypted = "";
string unencrypt = "";
char key[] = "";
cout << "Enter sentence: ";
getline(cin, sentence);
cout << "Enter key: ";
cin >> key;
for (int temp = 0; temp < sentence.size(); temp++){
encrypted += sentence[temp] ^ (int(key) + temp) % 2;
}
cout << "Encrypted = " << encrypted;
for (int temp = 0; temp < sentence.size(); temp++){
unencrypt += sentence[temp] ^ (int(key) + temp) % 2;
}
cout << endl;
cout << "Unencrypted = " << unencrypt;
return 0;
}
答案 0 :(得分:0)
检查密钥派生功能。通常,这些密钥用盐进行散列,并且具有固定大小的散列值可以用作密钥。盐是随机的。
参见http://en.wikipedia.org/wiki/PBKDF2 http://en.wikipedia.org/wiki/Key_derivation_function 它是导出密钥的标准。