• 大小: 155KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-05-18
  • 语言: JavaScript
  • 标签: js  java  aes  加解密  

资源简介

亲测可用。前后端,通过代码生成加密和解密。javascript可以解密和加密,反之,后端java代码可以加密和解密。包中有详细说明和例子代码。保证可以正确运行。

资源截图

代码片段和文件信息

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import sun.misc.base64Decoder;
 
public class Encryption
{
    public static void main(String args[]) throws Exception {
     String data = “Test String啊啊啊啊啊啊啊啊啊啊啊啊啊啊“;
     String s=encrypt(data);
        System.out.println(s);
        System.out.println(desEncrypt(s));


    }
 
    public static String encrypt(String data) throws Exception {
        try {
            
            String key = “1234567812345678“;
            String iv = “1234567812345678“;
            Cipher cipher = Cipher.getInstance(“AES/CBC/PKCS5Padding“);
            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“);
            IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());
 
            cipher.init(Cipher.ENCRYPT_MODE keyspec ivspec);
            byte[] encrypted = cipher.doFinal(plaintext);
 
            return new sun.misc.base64Encoder().encode(encrypted);
 
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
 
    public static String desEncrypt(String data) throws Exception {
        try
        {
            String key = “1234567812345678“;
            String iv = “1234567812345678“;
             
            byte[] encrypted1 = new base64Decoder().decodeBuffer(data);
             
            Cipher cipher = Cipher.getInstance(“AES/CBC/PKCS5Padding“);
            SecretKeySpec keyspec = new SecretKeySpec(key.getBytes() “AES“);
            IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());
             
            cipher.init(Cipher.DECRYPT_MODE keyspec ivspec);
  
            byte[] original = cipher.doFinal(encrypted1);
            String originalString = new String(original);
            return originalString;
        }
        catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-06-09 10:36  CryptoJS v3.1.2鍜孞AVA鍔犺В瀵咥ES\
     文件        6148  2018-06-09 10:36  CryptoJS v3.1.2鍜孞AVA鍔犺В瀵咥ES\.DS_Store
     目录           0  2018-06-09 10:37  __MACOSX\
     目录           0  2018-06-09 10:37  __MACOSX\CryptoJS v3.1.2鍜孞AVA鍔犺В瀵咥ES\
     文件         120  2018-06-09 10:36  __MACOSX\CryptoJS v3.1.2鍜孞AVA鍔犺В瀵咥ES\._.DS_Store
     文件       13360  2013-01-15 06:43  CryptoJS v3.1.2鍜孞AVA鍔犺В瀵咥ES\aes.js
     文件         222  2013-01-15 06:43  __MACOSX\CryptoJS v3.1.2鍜孞AVA鍔犺В瀵咥ES\._aes.js
     文件      157852  2015-05-12 13:58  CryptoJS v3.1.2鍜孞AVA鍔犺В瀵咥ES\CryptoJS v3.1.2.zip
     文件         218  2015-05-12 13:58  __MACOSX\CryptoJS v3.1.2鍜孞AVA鍔犺В瀵咥ES\._CryptoJS v3.1.2.zip
     文件        2516  2015-05-12 15:41  CryptoJS v3.1.2鍜孞AVA鍔犺В瀵咥ES\Encryption.java
     文件         222  2015-05-12 15:41  __MACOSX\CryptoJS v3.1.2鍜孞AVA鍔犺В瀵咥ES\._Encryption.java
     文件         732  2018-06-09 10:28  CryptoJS v3.1.2鍜孞AVA鍔犺В瀵咥ES\test_pkcs5.html
     文件         222  2018-06-09 10:28  __MACOSX\CryptoJS v3.1.2鍜孞AVA鍔犺В瀵咥ES\._test_pkcs5.html
     文件         212  2018-06-09 10:30  CryptoJS v3.1.2鍜孞AVA鍔犺В瀵咥ES\璇存槑.txt
     文件         171  2018-06-09 10:30  __MACOSX\CryptoJS v3.1.2鍜孞AVA鍔犺В瀵咥ES\._璇存槑.txt
     文件         222  2018-06-09 10:36  __MACOSX\._CryptoJS v3.1.2鍜孞AVA鍔犺В瀵咥ES

评论

共有 条评论