长度16 I有一个要求创建具有长度为16(即具有128位被用作在AES加密密钥的字节数组)一个byte[]
。如何创建字节[]使用FromBase64String
下面是一个有效的字符串
"AAECAwQFBgcICQoLDA0ODw=="
什么是确定一个字符串是否为128位的算法?或者试验和错误是创建这种128位字符串的唯一方法?
CODE
static void Main(string[] args)
{
string firstString = "AAECAwQFBgcICQoLDA0ODw=="; //String Length = 24
string secondString = "ABCDEFGHIJKLMNOPQRSTUVWX"; //String Length = 24
int test = secondString.Length;
byte[] firstByteArray = Convert.FromBase64String((firstString));
byte[] secondByteArray = Convert.FromBase64String((secondString));
int firstLength = firstByteArray.Length;
int secondLength = secondByteArray.Length;
Console.WriteLine("First Length: " + firstLength.ToString());
Console.WriteLine("Second Length: " + secondLength.ToString());
Console.ReadLine();
}
发现:
为256位,我们需要6分之256= 42.66字符。这是舍入到43个字符。 [为了使它被4整除添加=
]
对于512位,我们需要六分之五百十二= 85.33字符。这是四舍五入到86个字符。 [为了使它被4整除添加==
]
对于128位,我们需要6分之128= 21.33字符。这是舍入到22个字符。 [使其可被4整除==
]
如果你可以使用GPL代码(即你在GPL下发布),你可能想看看它有大量的实用工具类和东西对付键KeePass的源代码(www.keepass.info)。 – Philipp 2013-02-19 09:43:40