For example, the hash value generated by sha-256 is directly used for a particular byte array like this.
void Run(CryptoArray& plain, CryptoArray& key)
{
uint8_t *hash = Sha256::FromArray(key.getArray(), key.getSize());
size_t round = plain.getSize() / 8;
size_t remain = plain.getSize() % 8;
for (size_t i = 0; i < round; i++)
((uint64_t *)plain.getArray())[i] ^= ((uint64_t *)hash)[i % 8];
uint8_t *arr = plain.getArray() + round * 8;
for (size_t i = 0; i < remain; i++)
arr[i] ^= hash[i];
}
If the 2^2048-bit computer is invented(or using the biginteger) in the distant future, this problem is parallelized and can be easily solved. However, I know that both this simple-hash-crpyto function and the common cryptographic function are intended to make it difficult to get the most out of the password.
If so, have developers added several additional features to increase the time it takes to get your passwords using these feature(AES, DES, ...)? If not, is there a fatal problem with using the hash function alone? All the programs I saw did not use the hash function like this.