一个CryptoJS AES/ECB/NoPadding加密实现问题

发布于 2022-05-03 15:44:59 字数 1841 浏览 789 评论 1

public static String encrypt(String data) throws Exception {
		try {

			Cipher cipher = Cipher.getInstance("AES/ECB/NoPadding");
			int blockSize = cipher.getBlockSize();

			byte[] dataBytes = data.getBytes();
			int plaintextLength = dataBytes.length;
			if (plaintextLength % blockSize != 0) {
				plaintextLength = plaintextLength
						+ (blockSize - (plaintextLength % blockSize));
			}

			byte[] plaintext = new byte[plaintextLength];
			System.arraycopy(dataBytes, 0, plaintext, 0, dataBytes.length);

			SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");

			// ECB ģʽ��ʹ��IV
			// IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());

			cipher.init(Cipher.ENCRYPT_MODE, keyspec);
			byte[] encrypted = cipher.doFinal(plaintext);
			return Base64.encodeToString(encrypted, Base64.DEFAULT);
			// return new sun.misc.BASE64Encoder().encode(encrypted);

		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}

	}



	上面是java代码,现在要用CryptoJS改写成JS加密,JS代码如下:

var key  = CryptoJS.enc.Utf8.parse(ENCRYPT_KEY);  //密钥 

            //var iv   = CryptoJS.enc.Latin1.parse('NoPadding');

            //iv:iv, 

var sendData= CryptoJS.enc.Utf8.parse(data);

            var encrypted = CryptoJS.AES.encrypt(sendData,key,

                    {

                        mode:CryptoJS.mode.ECB,

                        padding:CryptoJS.pad.NoPadding

                    });

            console.log("1--->"+encrypted);

            console.log(encrypted.ciphertext.toString(CryptoJS.enc.Base64));

            return encrypted.ciphertext.toString(CryptoJS.enc.Base64); //密文

相同字符串加密出来结果不一样,比如Login加密出来,java代码为Wr6w19AkZpUoYKyFE0EmSg== 然而JS代码输出为Wr6w19A= 感觉就是短了一截,求指点,谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

三生池水覆流年 2022-05-06 01:50:27

请问解决了吗?我也遇到了相同的问题,求指教

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文