From 0f96a95f2c563c436f0661e18777a4ad59e28c94 Mon Sep 17 00:00:00 2001 From: Looly Date: Sat, 9 Oct 2021 20:24:02 +0800 Subject: [PATCH] fix isBase64 --- CHANGELOG.md | 1 + .../java/cn/hutool/core/codec/Base64.java | 22 +++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b776605de..3af8d62ca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ * 【core 】 Week增加of重载,支持DayOfWek(pr#1872@Github) * 【poi 】 优化read,避免多次创建CopyOptions(issue#1875@Github) * 【core 】 优化CsvReader,实现可控遍历(pr#1873@Github) +* 【core 】 优化Base64.isBase64判断(pr#1879@Github) ### 🐞Bug修复 * 【http 】 修复HttpCookie设置cookies的方法,不符合RFC6265规范问题(pr#418@Gitee) diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/Base64.java b/hutool-core/src/main/java/cn/hutool/core/codec/Base64.java index 809e5f779..1b77c2ba6 100644 --- a/hutool-core/src/main/java/cn/hutool/core/codec/Base64.java +++ b/hutool-core/src/main/java/cn/hutool/core/codec/Base64.java @@ -322,12 +322,12 @@ public class Base64 { * @return 是否为Base64 * @since 5.7.5 */ - public static boolean isBase64(CharSequence base64){ + public static boolean isBase64(CharSequence base64) { if (base64 == null || base64.length() < 2) { return false; } - byte[] bytes = StrUtil.utf8Bytes(base64); + final byte[] bytes = StrUtil.utf8Bytes(base64); if (bytes.length != base64.length()) { // 如果长度不相等,说明存在双字节字符,肯定不是Base64,直接返回false @@ -344,15 +344,15 @@ public class Base64 { * @return 是否为Base64 * @since 5.7.5 */ - public static boolean isBase64(byte[] base64Bytes){ + public static boolean isBase64(byte[] base64Bytes) { boolean hasPadding = false; for (byte base64Byte : base64Bytes) { - if(hasPadding){ - if('=' != base64Byte){ + if (hasPadding) { + if ('=' != base64Byte) { // 前一个字符是'=',则后边的字符都必须是'=',即'='只能都位于结尾 return false; } - } else if('=' == base64Byte){ + } else if ('=' == base64Byte) { // 发现'=' 标记之 hasPadding = true; } else if (false == (Base64Decoder.isBase64Code(base64Byte) || isWhiteSpace(base64Byte))) { @@ -364,12 +364,12 @@ public class Base64 { private static boolean isWhiteSpace(byte byteToCheck) { switch (byteToCheck) { - case ' ' : - case '\n' : - case '\r' : - case '\t' : + case ' ': + case '\n': + case '\r': + case '\t': return true; - default : + default: return false; } }