Reliably checking if a string is base64 encoded in .Net(可靠地检查字符串是否在 .Net 中使用 base64 编码)
问题描述
开始之前:是的,我已在此处和其他地方检查了有关此主题的其他问题和答案.
Before I start: Yes, I have checked the other questions and answers on this topic both here and elsewhere.
我找到了一个示例字符串,.Net 将对其进行 base64 解码,即使它实际上不是 base64 编码的.这是一个例子:
I have found an example string that the .Net will base64 decode even though it isn't actually base64 encoded. Here is the example:
Rhinocort Aqueous 64mcg/dose 鼻腔喷雾剂
.Net 方法 Convert.FromBase64String 在解码这个字符串时不会抛出异常,所以我的 IsBase64Encoded 方法很高兴为这个字符串返回 true.
The .Net method Convert.FromBase64String does not throw an exception when decoding this string so my IsBase64Encoded method happily returns true for this string.
有趣的是,如果我使用 cygwin base64 -d 命令将此字符串作为输入,它会失败并显示消息 invalid input.
Interestingly, if I use the cygwin base64 -d command using this string as input, it fails with the message invalid input.
更有趣的是,我认为属于这个可执行文件的源(http://libb64.sourceforge.net/) 解码"这个相同的字符串,结果与我从 .Net Convert.FromBase64String 获得的结果相同.我会继续寻找,希望能在别处找到线索,但现在我被难住了.
Even more interestingly, the source that I thought that belongs to this executable (http://libb64.sourceforge.net/) "decodes" this same string with the same result as I am getting from the .Net Convert.FromBase64String. I will keep looking hoping to find a clue elsewhere but right now I'm stumped.
有什么想法吗?
推荐答案
有一个稍微好一点的解决方案,它也检查输入字符串的长度.
There's a slightly better solution which also checks the input string length.
我建议您在开始时进行检查.如果输入为 null 或为空,则返回 false
.
I recommend you do a check at the beginning. If the input is null or empty then return false
.
http://www.codeproject.com/Questions/177808/How-to-determine-if-a-string-is-Base-decoded-or
这篇关于可靠地检查字符串是否在 .Net 中使用 base64 编码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:可靠地检查字符串是否在 .Net 中使用 base64 编码
基础教程推荐
- SSE 浮点算术是否可重现? 2022-01-01
- 为什么Flurl.Http DownloadFileAsync/Http客户端GetAsync需要 2022-09-30
- MS Visual Studio .NET 的替代品 2022-01-01
- rabbitmq 的 REST API 2022-01-01
- c# Math.Sqrt 实现 2022-01-01
- 如何激活MC67中的红灯 2022-01-01
- 有没有办法忽略 2GB 文件上传的 maxRequestLength 限制? 2022-01-01
- 将 XML 转换为通用列表 2022-01-01
- 如何在 IDE 中获取 Xamarin Studio C# 输出? 2022-01-01
- 将 Office 安装到 Windows 容器 (servercore:ltsc2019) 失败,错误代码为 17002 2022-01-01