我正在将一些代码从C#转换为VB.NET.我在C#中有以下行
var bytes = new byte[password.Length * sizeof(char)];
看看MSDN,似乎VB.NET似乎没有sizeof运算符.我知道有一个Marshal.SizeOf但是MSDN documentation还说明返回的值可能与sizeof的值不同.
有人可以帮忙吗?在VB.NET中是否有相应的声明?
附加信息
我的目标是将密码转换为字节数组,然后我可以散列,然后存储在数据库中或与之前存储的散列进行比较.但我不一定想得到与我的具体情况有关的答案.
Dim bytes(password.Length * xxx) As Byte System.Buffer.BlockCopy(password.tocharArray(),bytes,bytes.Length) Dim sha512 = System.Security.Cryptography.SHA512.Create() Dim hash = sha512.ComputeHash(bytes) ' compare hash or stroe in database
解决方法
VB中的’Len’操作符将执行此操作(但它适用于实例,因此您需要相应地调整):
Dim bytes = New Byte((someString.Length * Len(New Char)) - 1){}