我正在尝试将publickey
变量数组中的数字转换为Hex
数字。代码HEX_key = Hex(publickey(0))
引发错误:
System.ArgumentException:'参数'Number'无法转换为'BigInteger'类型。'
我该如何纠正?如何将BigInteger转换为十六进制字符串?
public key is "-31969172801463260124234214026687674925736772420938592197321821673909885626448"
Private Sub Button14_Click(sender As Object, e As EventArgs) Handles Button14.Click
Dim publickey() As BigInteger
Dim HEX_key As String = Nothing
publickey = EccMultiply(GENPOINT, Privatekey)
HEX_key = Hex(publickey(0))
TextBox11.Text = HEX_key
End Sub
P.S: EccMultiply()
是一个给出我上面提到的值"-31969172801463260124234214026687674925736772420938592197321821673909885626448"
的函数,公共密钥变量现在具有该值,因此publickey = (that big number)
。 Function EccMultiply(genpoint, ScalarHex)
。我没有在此处包括功能代码,因为这会使代码变长。 Hex()
是"Imports System.Numerics"
您误解了错误消息。这不是在告诉您参数是不能转换为BigInteger
值的值。告诉您Hex
不支持BigInteger
类型。文档指出,带有Object
参数的重载接受“任何有效的数字表达式或字符串表达式”] >>,但这意味着任何标准数字类型。 Hex
不了解BigInteger
。我认为您最好的选择是将BigInteger
转换为Byte
数组,然后自己转换为十六进制。
以下示例...