撤消XOR加密不起作用?

时间:2016-09-22 16:39:33

标签: vb.net encryption xor

所以我有以下函数要对一个字符串进行异或,它可以工作但是当我将加密的字符串传回给它时,输出不是解密。我的理解是对De XOR来说,有些事情只是简单地将它再次异化,但它似乎失败了,任何理想都是为什么会这样?我也将xor存储为十六进制

Public Shared Function StringToHash(ByVal str As String) As Integer
    Dim hash As Integer = (AscW(Char.ToLower(str(0))) Xor &H4B9ACE2F) * &H1000193
    For i As Integer = 1 To str.Length - 1
        hash = (AscW(Char.ToLower(str(i))) Xor hash) * &H1000193
    Next
    hash = hash * &H1000193
    Return hash
End Function

1 个答案:

答案 0 :(得分:0)

如前所述,这是关于散列,而不是加密 - 两个相关但分开的概念。

虽然安全哈希是单向的,但上述功能肯定不是安全哈希。因此,您可以在非常小的输入尺寸下对其进行反转。

除此之外,虽然散列通常是不可逆的,但也可以强制使用散列值。

这仅适用于输入字母表是有限的(几个字符,或一组有限的单词等),如果哈希输出大小很小,它可能会返回太多输入(在这种情况下肯定是)。但是否则你只需要输入一些输入并测试它是否会产生相同的哈希值。