可靠地检查字符串是否在 .Net 中使用 base64 编码

Reliably checking if a string is base64 encoded in .Net(可靠地检查字符串是否在 .Net 中使用 base64 编码)

本文介绍了可靠地检查字符串是否在 .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 编码

基础教程推荐