我想解码一个Base64编码的字符串,然后将其存储在我的数据库中。如果输入不是Base64编码的,我需要抛出一个错误。
如何检查字符串是否为Base64编码?
发布于 2011-12-20 14:39:35
您可以使用以下正则表达式来检查字符串是否构成有效的base64编码:
^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$
在base64编码中,字符集是[A-Z, a-z, 0-9, and + /]
。如果剩余长度小于4,则使用'='
字符填充字符串。
^([A-Za-z0-9+/]{4})*
表示字符串以0个或多个base64组开头。
([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$
表示字符串以以下三种形式之一结束:[A-Za-z0-9+/]{4}
、[A-Za-z0-9+/]{3}=
或[A-Za-z0-9+/]{2}==
。
发布于 2016-03-06 05:23:23
从Java8开始,您可以简单地使用java.util.Base64尝试并解码该字符串:
String someString = "...";
Base64.Decoder decoder = Base64.getDecoder();
try {
decoder.decode(someString);
} catch(IllegalArgumentException iae) {
// That string wasn't valid.
}
发布于 2013-11-22 21:12:41
在PHP5中尝试这样做
//where $json is some data that can be base64 encoded
$json=some_data;
//this will check whether data is base64 encoded or not
if (base64_decode($json, true) == true)
{
echo "base64 encoded";
}
else
{
echo "not base64 encoded";
}
将其用于PHP7
//$string parameter can be base64 encoded or not
function is_base64_encoded($string){
//this will check if $string is base64 encoded and return true, if it is.
if (base64_decode($string, true) !== false){
return true;
}else{
return false;
}
}
https://stackoverflow.com/questions/8571501
复制相似问题