繁体   English   中英

C# - Base64 验证器错误的数字与 Base64 字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM