導航:首頁 > 編程語言 > javajsonbase64加密解密

javajsonbase64加密解密

發布時間:2023-07-14 14:52:24

java中用Base64編程的文件批量加密解密工具程序代碼

/** * BASE64解密 * * @param key * @return * @throws Exception */
public static byte[] decryptBASE64(String key) throws Exception { return (new BASE64Decoder()).decodeBuffer(key); } /** * BASE64加密 * * @param key * @return * @throws Exception */ public static String encryptBASE64(byte[] key) throws Exception { return (new BASE64Encoder()).encodeBuffer(key); }

❷ 在Java中如何進行BASE64編碼和解碼

如果是單純只想用復的話,導這制個包進你的項目snakeyaml-1.17.jar,
裡面有個類可以直接用

org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder

例如:
String needToEncode = "你想編碼的字元串";
String encoded = Base64Coder.encodeString(needToEncode);
// 控制台輸出:
String decoded = Base64Coder.decodeString(encoded );
// 控制台輸出:你想編碼的字元串
Base64Coder這個類還提供了別的方法,可以自己看一下。
僅供參考。

❸ android,java 通用的加密解密方式有幾種

移動端越來越火了,我們在開發過程中,總會碰到要和移動端打交道的場景,比如.NET和android或者iOS的打交道。為了讓數據交互更安全,我們需要對數據進行加密傳輸。今天研究了一下,把幾種語言的加密都實踐了一遍,實現了.NET,java(android),iOS都同一套的加密演算法,下面就分享給大家。
AES加密有多種演算法模式,下面提供兩套模式的可用源碼。
加密方式:
先將文本AES加密
返回Base64轉碼
解密方式:
將數據進行Base64解碼
進行AES解密
一、CBC(Cipher Block Chaining,加密塊鏈)模式
是一種循環模式,前一個分組的密文和當前分組的明文異或操作後再加密,這樣做的目的是增強破解難度.
密鑰
密鑰偏移量
java/adroid加密AESOperator類:

package com.bci.wx.base.util;

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

/**
* AES 是一種可逆加密演算法,對用戶的敏感信息加密處理 對原始數據進行AES加密後,在進行Base64編碼轉化;
*/
public class AESOperator {

/*
* 加密用的Key 可以用26個字母和數字組成 此處使用AES-128-CBC加密模式,key需要為16位。
*/
private String sKey = "smkldospdosldaaa";//key,可自行修改
private String ivParameter = "0392039203920300";//偏移量,可自行修改
private static AESOperator instance = null;

private AESOperator() {

}

public static AESOperator getInstance() {
if (instance == null)
instance = new AESOperator();
return instance;
}

public static String Encrypt(String encData ,String secretKey,String vector) throws Exception {

if(secretKey == null) {
return null;
}
if(secretKey.length() != 16) {
return null;
}
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
byte[] raw = secretKey.getBytes();
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
IvParameterSpec iv = new IvParameterSpec(vector.getBytes());// 使用CBC模式,需要一個向量iv,可增加加密演算法的強度
cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
byte[] encrypted = cipher.doFinal(encData.getBytes("utf-8"));
return new BASE64Encoder().encode(encrypted);// 此處使用BASE64做轉碼。
}

// 加密
public String encrypt(String sSrc) throws Exception {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
byte[] raw = sKey.getBytes();
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());// 使用CBC模式,需要一個向量iv,可增加加密演算法的強度
cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
byte[] encrypted = cipher.doFinal(sSrc.getBytes("utf-8"));
return new BASE64Encoder().encode(encrypted);// 此處使用BASE64做轉碼。
}

// 解密
public String decrypt(String sSrc) throws Exception {
try {
byte[] raw = sKey.getBytes("ASCII");
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());
cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
byte[] encrypted1 = new BASE64Decoder().decodeBuffer(sSrc);// 先用base64解密
byte[] original = cipher.doFinal(encrypted1);
String originalString = new String(original, "utf-8");
return originalString;
} catch (Exception ex) {
return null;
}
}

public String decrypt(String sSrc,String key,String ivs) throws Exception {
try {
byte[] raw = key.getBytes("ASCII");
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
IvParameterSpec iv = new IvParameterSpec(ivs.getBytes());
cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
byte[] encrypted1 = new BASE64Decoder().decodeBuffer(sSrc);// 先用base64解密
byte[] original = cipher.doFinal(encrypted1);
String originalString = new String(original, "utf-8");
return originalString;
} catch (Exception ex) {
return null;
}
}

public static String encodeBytes(byte[] bytes) {
StringBuffer strBuf = new StringBuffer();

for (int i = 0; i < bytes.length; i++) {
strBuf.append((char) (((bytes[i] >> 4) & 0xF) + ((int) 'a')));
strBuf.append((char) (((bytes[i]) & 0xF) + ((int) 'a')));
}

return strBuf.toString();
}

❹ JAVA怎麼樣實現Base64加密解密

package test;
import java.io.IOException;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class Test {
public static void main(String[] args) {
str = "java12345";
String ret = null;
ret = new BASE64Encoder().encode(str.getBytes());
System.out.println("加密前:"+str+" 加密後:"+ret);
str = "amF2YTEyMzQ1";
try {
ret = new String(new BASE64Decoder().decodeBuffer(str));
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("解密前:"+str+" 解密後:"+ret);
}
}

❺ java base64解密亂碼問題 代碼如下:

private String getPictureString() {
String upload = "";
try {
FileInputStream in = new FileInputStream(fileName);
byte[] ba = new byte[in.available()];
in.read(ba);
in.close();
upload = new String(android.util.Base64.encode(ba,
android.util.Base64.DEFAULT));
} catch (FileNotFoundException e) {
LogUtil.e(e.getMessage(), e);
} catch (IOException e) {
LogUtil.e(e.getMessage(), e);
}
return upload;
}


這個是加密

解密就是

encode換成decode

upload=newString(android.util.Base64.decode(ba,

android.util.Base64.DEFAULT));

❻ java base64

java base64是什麼,讓我們一起了解一下?

Base64是一種編碼方法,要求把每三個8Bit的位元組轉換為四個6Bit的位元組,轉換之後的這四個位元組中每6個晌慧穗有效bit為有效數據,空餘的那兩個bit用0補上成為一個位元組。

為什麼要使用Base64?

Base 64主要用途不是加密,而是把一些二進制數轉成普通字元,方便在網路上傳輸。 由於一些二進制字元在傳輸協議中屬於控制字元,不能直接傳送,所以需要轉換一下才可以。由於某些系統中只能使用ASCII字元,Base64就是用來將非ASCII字元的數據轉換成ASCII字元的一種方法,Base64特別適合在http,mime協議下快速傳輸數據。

比如網路中圖片的傳輸Base64,並非安全領域下的加密解密演算法。雖然經常遇到所謂的base64的加密解密。但base64隻能算是一個編碼演算法,對數據內容進行編碼來適合傳輸。雖然base64編碼過後原文也變成不能看到的字元格式,但是方式初級又簡單。

那在Java中想要實現Base64的加解密,有哪些方式?

主要有以下四種(推薦度由低到高):

1、JDK中的宴卜sun.misc套碧桐件。

2、第三方擴展包 bouncy castle。

3、第三方擴展包 commons codec。

4、JDK8及更高版本中的 java.util.Base64。

實戰操作,JDK實現代碼如下: import sun.misc.BASE64Decoder;   import sun.misc.BASE64Encoder;   /** * BASE64加密解密 */   public class BASE64 {       /** * BASE64解密 * @param key * @return * @throws Exception */       public static byte[] decryptBASE64(String key) throws Exception {           return (new BASE64Decoder()).decodeBuffer(key);       }       /** * BASE64加密 * @param key * @return * @throws Exception */       public static String encryptBASE64(byte[] key) throws Exception {           return (new BASE64Encoder()).encodeBuffer(key);       }       public static void main(String[] args) throws Exception {           String data = BASE64.encryptBASE64("http://aub.iteye.com/".getBytes());           System.out.println("加密前:" + data);           byte[] byteArray = BASE64.decryptBASE64(data);           System.out.println("解密後:" + new String(byteArray));       }   }

閱讀全文

與javajsonbase64加密解密相關的資料

熱點內容
如何使用人大數據 瀏覽:890
文件斜著的一排字用ps怎麼刪除 瀏覽:995
港版iphone5ios7有幾種系統 瀏覽:770
qq歡迎使用影音播放 瀏覽:322
網路列印機怎麼查看電腦的密碼 瀏覽:980
淘寶賣二手的app叫什麼名字 瀏覽:217
安卓代碼讀取界面信息 瀏覽:714
數控車床車55度螺紋怎麼編程 瀏覽:391
word桌面找不到文件 瀏覽:585
數控車床編程怎麼做到的 瀏覽:639
哈爾濱市行政區劃代碼 瀏覽:716
如何顯示文件擴張 瀏覽:283
ps怎麼移植文件 瀏覽:443
傳奇補丁文件說明 瀏覽:513
奧維地圖怎麼設置網路疊加 瀏覽:407
linux載入庫文件so失敗 瀏覽:714
大家都想要的app 瀏覽:58
程序員比特幣 瀏覽:568
mysqlfrm是什麼文件 瀏覽:665
win10點擊文件夾聲音消失 瀏覽:963

友情鏈接