当前位置:首页 » 密码管理 » 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); }

热点内容
数据加密的使用 发布:2025-07-15 21:45:41 浏览:276
linux字符统计 发布:2025-07-15 21:43:17 浏览:462
pythonisnan 发布:2025-07-15 21:42:27 浏览:28
vs编译器版本 发布:2025-07-15 21:39:51 浏览:220
冰箱压缩机接水盒 发布:2025-07-15 21:27:00 浏览:609
xplinux双系统 发布:2025-07-15 21:26:54 浏览:615
优酷上传视频有限制吗 发布:2025-07-15 21:10:35 浏览:583
云存储漏录 发布:2025-07-15 21:00:49 浏览:67
编译主要分为哪几个阶段 发布:2025-07-15 20:58:11 浏览:635
少儿编程培训费 发布:2025-07-15 20:52:17 浏览:192