[英]C# - Base64 validator mistakes numbers with Base64 string
我这里有一个很奇怪的问题,我有以下 Base64 验证器
public static bool IsBase64String(this string base64)
{
Span<byte> buffer = new Span<byte>(new byte[base64.Length]);
return Convert.TryFromBase64String(base64, buffer, out int bytesParsed);
}
然而奇怪的是,它认为下面的字符串是 base64。 不知道出了什么问题。
5355220565819095
我正在使用.Net 5。
我想要做什么
我需要将一个字节数组转换为 Base64,存储它,然后能够判断它是否是 base64 然后我可以将它转换回字节 [] 基本上是一种存储字节的有效方法!
如果这只适用于信用卡号码,您只需要检查长度(顺便说一句,我怀疑存储信用卡号码是个好主意)。
MasterCard 和 Visa 使用 16 位数字,而 AmEx 使用 15 位数字,通过快速搜索,我发现一些鲜为人知的卡可以在 13 到 19 位之间变化。
一个 13 位的卡号产生一个 20 字符的 base64 字符串(包括“==”填充)。 所以最后你需要检查的是你的字符串的长度,如果它小于 20 个字符,它要么是无效的,要么是一个普通的卡号,任何 20 个字符或更多的字符都应该被解码。
编辑:我忘记了 AES 加密字节数组,但这更适用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.