1. 程式人生 > >判斷字串是否base64編碼

判斷字串是否base64編碼

今天一個同事問我如何判斷一個字串是base64編碼後的字串。腦子開始動起來,字串是否以等號結束?一個等號?兩個等號?還有用base64解碼函式解碼一下,看是否成功?

後來整理了一下思路,可以通過判斷字串是否具有base64編碼的特點來確定。那麼base64編碼之後的字串具有哪些特點:
* 字串只可能包含A-Z,a-z,0-9,+,/,=字元
* 字串長度是4的倍數
* =只會出現在字串最後,可能沒有或者一個等號或者兩個等號

瞭解了以上的特點之後,問題就容易解決了。

正則判斷

private static boolean isBase64(String str) {
    String base64Pattern = "^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$"
; return Pattern.matches(base64Pattern, str); }

迴圈字串

private static boolean isBase64(String str) {
    if (str == null || str.trm().length() == 0) {
        return false;
    } else {
        if (str.length() % 4 != 0) {
            return false;
        }

        char[] strChars = str.toCharArray();
        for
(char c:strChars) { if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '+' || c == '/' || c == '=') { continue; } else { return false; } } return
true; } }

感謝同事共享的程式碼,其中迴圈字串程式碼不是很正確,需要判斷=是否在最後,以及個數不能多餘2個,由於不瞭解java語法暫不修改。

相關推薦

判斷字串是否base64編碼

今天一個同事問我如何判斷一個字串是base64編碼後的字串。腦子開始動起來,字串是否以等號結束?一個等號?兩個等號?還有用base64解碼函式解碼一下,看是否成功? 後來整理了一下思路,可以通過判斷字串是否具有base64編碼的特點來確定。那麼base64編碼

字串BASE64 編碼 base64_encode() base64_decode()

base64_encode 將字串以 BASE64 編碼。 語法: string base64_encode(string data); 返回值: 字串 函式種類: 編碼處理 內容說明

php如何判斷一個字串是不是base64編碼

   由於以前的資料是沒有經過base64編碼的,後來由於要相容Emoji表情和顏文字,改成base64編碼後再儲存。所以在頁面顯示的時候需要判斷是不是經過base64編碼過的。谷歌了一下,網上比較普

js對base64編碼字串進行 編碼和 解碼

//1.加密解密方法使用: //1.加密 var str = '124中文內容'; var base = new Base64(); var result = base.encode(str); //document.write(result); //2.解密 var result2

利用字元編碼集對中文長度的不同來判斷字串中有沒有中文

是這樣的,在日常開發中遇到一個問題:判斷一個字串中是否含有中文。本來是很簡單的一個需求,用正則就搞定了。然而這是一個很老舊的一個系統,有自己的一套開發語言。偏偏不支援正則,這就難住我了。 當時想到一個笨辦法:把三千個常用漢字寫在一個配置檔案中,把要判斷的字串分割為一個個字元,一個個的去配置檔案中找,看能不能

判斷字串編碼型別,判斷字串value的編碼方式為charset中的哪一種,然後返回。

public static String charset(String value, String charsets[]) throws UnsupportedEncodingException { String probe = StandardCharsets.UT

將圖片檔案轉化為位元組陣列字串,並對其進行Base64編碼處理和 對位元組陣列字串進行Base64解碼並生成圖片

public static String imageToBase64(String path) { // 將圖片檔案轉化為位元組陣列字串,並對其進行Base64編碼處理 byte[] data = null; // 讀取圖片位元組

python判斷字串編碼——使用chardet判斷字串編碼的方法

本文例項講述了python使用chardet判斷字串編碼的方法。分享給大家供大家參考。具體分析如下: 最近利用python抓取一些網上的資料,遇到了編碼的問題。非常頭痛,總結一下用到的解決方案。 linux中vim下檢視檔案編碼的命令 set fileencoding  python中一個強力的編碼檢

Python判斷字串、檔案字元編碼

本段工具程式碼用於判斷字串或者文字檔案的字元編碼型別,可以識別常用的UTF-8,UTF-8-SIG,UTF-16,GBK,GB2312 ,GB18030 ,ASCII字元編碼格式,如果有特殊字符集需求,可以擴充字元編碼列表。 程式碼如下: [charse

判斷字串編碼的方法

import chardet f = open('file','r') fencoding=chardet.detect(f.read()) print fencoding fencoding輸出格式 {'confidence': 0.96630842899499614

base64編碼之後的字串,在客戶端和服務端傳值問題

    base64編碼之後可能會含有“+”等特殊字元,通過URL傳值時,一些特殊字元會在傳輸過程中發生改變    “/” 在客戶端變為 "2F"     "+"  ..........." "     "="  ..........."%3D" 並且每76個字元都會新增一個換行“\n”,傳輸過程中換行符並沒

字串/字元陣列轉Base64編碼

import sun.misc.BASE64Decoder; public class Base64 { /** * 字串轉Base64編碼 * @param s * @return */ public static String getBAS

PHP安全的URL字串base64編碼和解碼

function urlsafe_b64decode($string) {    $data = str_replace(array('-','_'),array('+','/'),$string);    $mod4 = strlen($data) % 4;    if ($mod4) {       

二進位制資料編碼字串通過BASE64轉換

public class Base64Util {    /**     * 將二進位制資料編碼為BASE64字串     * @param binaryData     * @return     */    public static String encode(byt

java將base64編碼字串還原為圖片

web專案經常需要上傳圖片,若後臺獲取到的是base64編碼的字串,就需要將字串還原為圖片了   String src1 = request.getParameter("src1"); //從頁面獲取一個base64編碼的字串 byte[] b1 = imageBase64

JS 對圖片base64編碼字串進行解碼並輸出影象

/////////////////////////// //base64編碼的GIF影象解碼 //By Mozart0 //2005/10/29 //////////////////// //建立GIF類的物件 //類GIF在此函式內部定義 //str64:gif檔案的Base64編碼字串 //成功返回建

C語言基於base64編碼字串

當想把字串採用base64編碼時,可以採用別人寫好的base64編碼標頭檔案,我們在程式中引入標頭檔案後就可以直接呼叫他們的方法這樣很方便我們編寫程式。 下面是base64程式碼 #include <stdio.h>  const char base[] =

校驗經過base64編碼字串是否是圖片檔案

synchronized private static boolean isImageFromBase64(String base64Str) { boolean flag = false; try { BufferedImage bufImg = Image

Android工具類,一些方法電話正則,是否為空,日期格式化,星期,車牌,身份證校驗,設定地區編碼,驗證日期字串是否是YYYY-MM-DD格式,判斷字串是否為數字

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Gr

C#Base64編碼字串與圖片的轉換

出自:http://blog.csdn.net/marquess/article/details/2732629 程式碼:using System; using System.Collections.Generic; using System.ComponentModel;