ключ, то захешированное слово не меняется?
вот код:
#include <iostream>
class Hesh
{
private:
int SIZE = 19;
std::string* heshArr = new std::string[SIZE];
public:
std::string hashFunc(std::string& str, std::string& key)
{
std::string current;
current.resize(str.size());
for (int i = 0; i < str.size(); i++)
{
current[i] = str[i] + key.find(i);
}
return current;
}
std::string Unhash(std::string str, std::string key)
{
std::string current;
current.resize(str.size());
for (int i = 0; i < str.size(); i++)
{
current[i] = str[i] - key.find(i);
}
return current;
}
void addInArr(std::string& str)
{
int summ = 0;
for (int i = 0; i < str.size(); i++)
{
summ += str[i];
}
summ %= 19;
heshArr[summ] = str;
}
void printHeshArr()
{
for (int i = 0; i < SIZE; i++)
{
std::cout << heshArr[i]<<"\t";
}
}
};
int main()
{
std::setlocale(LC_ALL, "ru");
std::string str = "HEllo World";
std::string str2 = "What is it";
std::string str3 = "LeeeeeeLL";
std::string key = "qwertyuiopasdfghjk";
Hesh h;
auto result = h.hashFunc(str, key);
h.addInArr(result);
result = h.hashFunc(str2, key);
h.addInArr(result);
result = h.hashFunc(str3, key);
h.addInArr(result);
h.printHeshArr();
return 0;
}
Можешь ещё раз рассказать что не так?
А это точно хеш-функция?
Ну тип я же шифрую и записываю в миссив
Хэш-функция ничего не шифрует, это невозможно
https://en.cppreference.com/w/cpp/string/basic_string/find find возвращает номер найденного символа в строке, в чем идея твоя такая оригинальная идея шифрования заключается? Сложить исходный символ с индексом в строке ключа? Да и вообще там полный бред написан, перечитай сам и проверь
Обсуждают сегодня