【发布时间】:2022-01-22 03:33:32
【问题描述】:
我在我的 vb 应用程序中使用来自 here 的这个 scrypt
我试过这段代码来散列一个十六进制字符串:
Imports Replicon.Cryptography.SCrypt
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim ss() As Byte = System.Text.Encoding.Default.GetBytes(TextBox1.Text)
RichTextBox1.Text = System.Text.Encoding.Default.GetString(SCrypt.DeriveKey(ss, ss, 1024, 1, 1, 32))
End Sub
End Class
文本框内的十六进制字符串:
TextBox1.text = "01000000f615f7ce3b4fc6b8f61e8f89aedb1d0852507650533a9e3b10b9bbcc30639f279fcaa86746e1ef52d3edb3c4ad8259920d509bd073605c9bf1d59983752a6b06b817bb4ea78e011d012d59d4"
它给了我这个:
r3Î<ÛãhšÏ-$:8´"ýäP+°‡ W«&‰Â
小端反转后的预期结果是这样的:
0000000110c8357966576df46f3b802ca897deb7ad18b12f1c24ecff6386ebd9
我觉得问题是字节转换,字符串转换?
感谢您的帮助
谢谢大家。
【问题讨论】:
-
SCrypt.DeriveKey()的输出是一个随机字节序列。它们不是字符串的编码,因此将它们解码为字符串没有任何意义。将它们保留为字节并没有错,但是如果您必须有一个字符串,则使用 base64 或十六进制编码器对字节进行编码。再次使用它们时,您必须对其进行解码。 -
谢谢你更新我的问题
标签: vb.net hash hex scrypt litecoin