如何判断一个字符串是否经过base64加密过
1个回答
展开全部
这个从理论上讲是无法判断的,因为base64只是个编码算法,不是类似http/ftp这种规范的协议,因此没有标志位来表示此字符串是base64编码过的。
但是,我们可以通过Base64编码后的特征来判断大概判断(可能误判)。
Base64是一种将任意数据串,转换成可以用 [A-Za-z0-9/+=] 这64个字符组成的可见字符串的方法。其中 “=”只能出现在末尾,最多2个,最少0个。
因此,当一个字符串正则匹配 [A-Za-z0-9/+]+[=]{0,2} 的集合中时,则有较大的可能为base64编码。
这在特定的情况下是有效的,如判断接收到的一个图片文件数据是否Base64加密了。
但对于一个本省就是纯英文的字符串,那就极可能误判了,且没有简单的办法判断,复杂的可以采用语法分析,这个就难度太大,不太现实了。如果实在有这种情况,只能从数据来源进行区分。
但是,我们可以通过Base64编码后的特征来判断大概判断(可能误判)。
Base64是一种将任意数据串,转换成可以用 [A-Za-z0-9/+=] 这64个字符组成的可见字符串的方法。其中 “=”只能出现在末尾,最多2个,最少0个。
因此,当一个字符串正则匹配 [A-Za-z0-9/+]+[=]{0,2} 的集合中时,则有较大的可能为base64编码。
这在特定的情况下是有效的,如判断接收到的一个图片文件数据是否Base64加密了。
但对于一个本省就是纯英文的字符串,那就极可能误判了,且没有简单的办法判断,复杂的可以采用语法分析,这个就难度太大,不太现实了。如果实在有这种情况,只能从数据来源进行区分。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询