gpt4 book ai didi

c# - 自定义字符串到 128 位字符串

转载 作者:太空宇宙 更新时间:2023-11-03 10:59:51 25 4
gpt4 key购买 nike

我试图将长度介于 0 到 15 之间的自定义字符串强制转换为 128 位字符串,因此我可以将其用作 AesCryptoServiceProvider key 。

我试过多种策略,结果如下:

        if (stringToConvert.Length > 16)
{
StringBuilder sB = new StringBuilder();
char[] chA = stringToConvert.ToCharArray();
int chAMaxLength = chA.Length;

for (int i = 0; i < 16; i++)
{
if (i <= chAMaxLength)
{
sB.Append(chA[i]);
}
}
}

我需要一个恰好 16 个字符长的字符串 (16*8 = 128)。

我现在被它困住了,只需要一只 helper 来穿过这个障碍。
如果这看起来很简单,我提前道歉。

例子:
asd 会变成
asdasdasdasdasda

最佳答案

StringBuilder b = new StringBuilder();
for (int i = 0; i < 8; i++)
{
b.Append(stringToConvert[i % stringToConvert.Length]);
}
stringToConvert = b.ToString();
byte[] key = Encoding.Unicode.GetBytes(stringToConvert);//key size is 16 bytes = 128 bits

更好(没有 StringBuilder):

byte[] key = new byte[16];
for (int i = 0; i < 16; i+=2)
{
byte[] unicodeBytes = BitConverter.GetBytes(stringToConvert[i % stringToConvert.Length]);
Array.Copy(unicodeBytes, 0, key, i, 2);
}

关于c# - 自定义字符串到 128 位字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18122192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com