當前位置:首頁 » 密碼管理 » jsbase64加密java解密

jsbase64加密java解密

發布時間: 2022-12-06 06:35:47

⑴ 如何在javascript 裡面實現和java相同的base64加解密演算法

引入base.js類庫

varbase64=BASE64.encoder(str);//返回編碼後的字元

varunicode=BASE64.decoder(base64Str);//返回會解碼後的unicode碼數組。

http://git.oschina.net/loonhxl/jbase64/blob/master/jbase64.js

⑵ java base64.encode多次加密,js解密就會不成功

多次解密有可能會出現差錯的吧。你可以用多個加密方法,而不要用同一個加密多次。

⑶ 如何前台JS進行加密,後台java進行解密

很不幸,就以我的知識范圍,純粹的JS無法做到百分百的安全。理由如下:

  1. 現在的瀏覽器端可以直接看到你的JS代碼,JS代碼都是明文的。盡管你可以壓縮,混淆,但是也是加大hack的難度,無法徹底對瀏覽器不可見。既然你的代碼都被看見了,那麼Hash,加密都是扯淡了。

  2. 對內容加密可以使用HTTPS,這點不假。但是這僅僅能夠抵抗抓包工具,但是通過瀏覽器的開發工具,仍然能夠看到你的請求內容,格式。那麼就可以按照你的格式偽造請求。我們就可以通過偽造請求修改某社交網站的用戶設置。

結論:純粹JS看起來無法滿足你的需求,但是可以使用object標簽,自己開發控制項進行數據加密,這點事可以的。但是這就超出了JS的范圍。並且Object的這個話題太大,我沒辦法給你展開,你自己研究下吧

⑷ javascript是不是自帶了base64加密、解密函數是什麼

是的,解密函數為:

window.btoa("test");//"dGVzdA=="
window.atob("dGVzdA==");//"test"

為什麼要使用Base64加密呢?

⑸ 關於WebSafeBase64的加密和解密,求解答

前端使用js: pwd = new Base64.encode(pwd);
後端使用java, new Base64().decodeBase64(pwd.getBytes()).toString();
java的Base64()有提供decode和decodeBase64()這倆種方法,我習慣的以為是decode(),結果卻是後者.

⑹ 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) {
String 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);
}
}

⑺ 如何使用CryptoJS的AES方法進行加密和解密

首先准備一份明文和秘鑰:
var plaintText = 'aaaaaaaaaaaaaaaa' // 明文
var keyStr = 'bbbbbbbbbbbbbbbb' // 一般key為一個字元串


參看官網文檔,AES方法是支持AES-128、AES-192和AES-256的,加密過程中使用哪種加密方式取決於傳入key的類型,否則就會按照AES-256的方式加密。
CryptoJS supports AES-128, AES-192, and AES-256. It will pick the variant by the size of the key you pass in. If you use a passphrase, then it will generate a 256-bit key.
由於Java就是按照128bit給的,但是由於是一個字元串,需要先在前端將其轉為128bit的才行。
最開始以為使用CryptoJS.enc.Hex.parse就可以正確地將其轉為128bit的key。但是不然...
經過多次嘗試,需要使用CryptoJS.enc.Utf8.parse方法才可以將key轉為128bit的。好吧,既然說了是多次嘗試,那麼就不知道原因了,後期再對其進行更深入的研究。
// 字元串類型的key用之前需要用uft8先parse一下才能用
var key = CryptoJS.enc.Utf8.parse(keyStr);


由於後端使用的是PKCS5Padding,但是在使用CryptoJS的時候發現根本沒有這個偏移,查詢後發現PKCS5Padding和PKCS7Padding是一樣的東東,使用時默認就是按照PKCS7Padding進行偏移的。
// 加密
var encryptedData = CryptoJS.AES.encrypt(plaintText, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});


由於CryptoJS生成的密文是一個對象,如果直接將其轉為字元串是一個Base64編碼過的,在encryptedData.ciphertext上的屬性轉為字元串才是後端需要的格式。
var encryptedBase64Str = encryptedData.toString();
// 輸出:'+ot8JuxWVdLgY=
console.log(encryptedBase64Str);

// 需要讀取encryptedData上的ciphertext.toString()才能拿到跟Java一樣的密文
var encryptedStr = encryptedData.ciphertext.toString();
// 輸出:'
console.log(encryptedStr);


由於加密後的密文為128位的字元串,那麼解密時,需要將其轉為Base64編碼的格式。
那麼就需要先使用方法CryptoJS.enc.Hex.parse轉為十六進制,再使用CryptoJS.enc.Base64.stringify將其變為Base64編碼的字元串,此時才可以傳入CryptoJS.AES.decrypt方法中對其進行解密。
// 拿到字元串類型的密文需要先將其用Hex方法parse一下
var encryptedHexStr = CryptoJS.enc.Hex.parse(encryptedStr);

// 將密文轉為Base64的字元串
// 只有Base64類型的字元串密文才能對其進行解密
var encryptedBase64Str = CryptoJS.enc.Base64.stringify(encryptedHexStr);


使用轉為Base64編碼後的字元串即可傳入CryptoJS.AES.decrypt方法中進行解密操作。
// 解密
var decryptedData = CryptoJS.AES.decrypt(encryptedBase64Str, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});


經過CryptoJS解密後,依然是一個對象,將其變成明文就需要按照Utf8格式轉為字元串。
// 解密後,需要按照Utf8的方式將明文轉位字元串
var decryptedStr = decryptedData.toString(CryptoJS.enc.Utf8);
console.log(decryptedStr); // 'aaaaaaaaaaaaaaaa'

⑻ Java怎麼加密字元串js才能解密

像CODE64編碼這種,js就能解密。包括像DES等等很多演算法,只要知道密鑰,js就都能解密。不過不推薦前台解密的方式,容易泄露密鑰和密碼

⑼ 前端js 加密解密方式

一、base64加密
使用JS函數的window.btoa()和 window.atob(),分別是編碼和解碼

二、編碼和解碼字元串

使用JS函數的escape()和unescape(),分別是編碼和解碼

三、AES加密解密
四、RSA加密解密

⑽ 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); }

熱點內容
雲伺服器多個公網ip搭建 發布:2024-04-25 15:13:15 瀏覽:844
phpmysqlupdate 發布:2024-04-25 15:08:15 瀏覽:252
隨時解壓 發布:2024-04-25 14:58:11 瀏覽:67
三率源碼 發布:2024-04-25 14:42:41 瀏覽:467
javastring轉string數組 發布:2024-04-25 14:42:10 瀏覽:136
飢荒如何更改密碼 發布:2024-04-25 14:42:02 瀏覽:743
百度雲如何解壓zip 發布:2024-04-25 14:38:57 瀏覽:570
母豬怎麼配置最好 發布:2024-04-25 14:35:47 瀏覽:75
php按鈕代碼 發布:2024-04-25 14:32:10 瀏覽:725
php數據類型轉換 發布:2024-04-25 14:15:17 瀏覽:750