麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Java > 正文

Java原生方法實現 AES 算法示例

2024-07-14 08:43:57
字體:
來源:轉載
供稿:網友

本文實例講述了Java原生方法實現 AES 算法。分享給大家供大家參考,具體如下:

AES(Advanced Encryption Standard)高級加密標準,在密碼學中又稱 Rijndael 加密法,是美國聯邦政府采用的一種區塊加密標準 。 這個標準用來替代原先的 DES ,已經被多方分析且廣為全世界所使用 。 現已成為對稱密鑰加密中最流行的算法之一 。

/** * AES 算法 * <p/> * 算法采用加密模式:CBC;數據塊:128;填充:PKCS5Padding * <p/> * key 與向量字符串的長度為 16 位 * * @author Deniro Li ([email protected]) *     2018/3/17 */public class AES {  /**   * 算法名稱   */  public static final String NAME = "AES";  /**   * 加密模式:CBC;數據塊:128;填充:PKCS5Padding   */  public final String MODE = "AES/CBC/PKCS5Padding";  /**   * KEY 與 向量字符串的長度   */  public static final int LENGTH = 16;  /**   * 加密用的 KEY   */  private String key;  /**   * 向量,用于增加加密強度   */  private String ivParameter;  /**   * @param key     加密用的 KEY   * @param ivParameter 偏移量   */  public AES(String key, String ivParameter) {    if (key == null || key.length() != LENGTH) {      throw new AESException("KEY 不存在,或者長度不為 " + LENGTH);    }    if (ivParameter == null || ivParameter.length() != LENGTH) {      throw new AESException("ivParameter 不存在,或者長度不為 " + LENGTH);    }    this.key = key;    this.ivParameter = ivParameter;  }  /**   * 加密   *   * @param s 要加密的字符串   * @return 加密后的字符串   */  public String encode(String s) {    String result;    try {      Cipher cipher = Cipher.getInstance(MODE);      IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());      cipher.init(ENCRYPT_MODE, new SecretKeySpec(key.getBytes(), NAME), iv);      byte[] bytes = cipher.doFinal(s.getBytes(ENCODING));      result = new BASE64Encoder().encode(bytes);    } catch (Exception e) {      throw new AESException("加密", e);    }    return result;  }  /**   * 解密   *   * @param s 待解密的字符串   * @return 解密后的字符串   */  public String decode(String s) {    try {      SecretKeySpec keySpec = new SecretKeySpec(key.getBytes("ASCII"), NAME);      Cipher cipher = Cipher.getInstance(MODE);      IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());      cipher.init(Cipher.DECRYPT_MODE, keySpec, iv);      return new String(cipher.doFinal(new BASE64Decoder().decodeBuffer(s)), ENCODING);    } catch (Exception e) {      throw new AESException("解密", e);    }  }}

單元測試:

public class AESTest {  AES aes;  @Before  public void init(){    aes=new AES("12345abcdef67890","1234567890abcdef");  }  @Test  public void testEncode() throws Exception {    Assert.assertEquals("jANei3LBvnLCaZ2XddWHZw==", aes.encode("123456"));  }  @Test  public void testDecode() throws Exception {    Assert.assertEquals("123456", aes.decode("jANei3LBvnLCaZ2XddWHZw=="));  }}

 

希望本文所述對大家java程序設計有所幫助。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久国产精品免费观看 | 欧美日韩高清一区 | 黄视频网站免费在线观看 | 成人片免费视频 | 欧美三区在线 | 久久华人 | 久久精品一二三区白丝高潮 | 亚洲一级片在线观看 | 久久成人视屏 | 一夜新娘第三季免费观看 | 337p粉嫩大胆噜噜噜亚瑟影院 | 中文区永久区 | 欧美精品国产综合久久 | 精品中文字幕在线观看 | 亚洲黑人在线观看 | 久久吊| 久久精品视频亚洲 | 中文字幕一区在线观看视频 | 午夜国内精品a一区二区桃色 | 免费网站看毛片 | 亚洲xxx视频 | 欧美日韩中文字幕在线视频 | 免费放黄网站在线播放 | 狠狠久久 | 国产无限资源在线观看 | 国产精品久久久久久久久久三级 | 99精品国产在热久久婷婷 | 亚洲啊v在线观看 | 在线a亚洲视频播放在线观看 | 午夜视频福利 | 亚洲一级电影在线观看 | 久草视频手机在线观看 | 一本色道精品久久一区二区三区 | 欧美熟videos肥婆 | 黄色大片www | 亚洲网站免费看 | 国产精品视频亚洲 | 免费欧美精品 | 一本色道久久综合狠狠躁篇适合什么人看 | 成熟女人特级毛片www免费 | 成人午夜视频免费 |