import javax.crypto.Cipher;

import javax.crypto.spec.SecretKeySpec;

import org.apache.commons.codec.binary.Base64;

/**

*

* @author Administrator

*

*/

public class AES {

// 加密

public static String Encrypt(String sSrc, String sKey) throws Exception {

if (sKey == null) {

System.out.print("Key为空null");

return null;

}

// 判断Key是否为16位

if (sKey.length() != 16) {

System.out.print("Key长度不是16位");

return null;

}

byte[] raw = sKey.getBytes("utf-8");

SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");

Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");//"算法/模式/补码方式"

cipher.init(Cipher.ENCRYPT_MODE, skeySpec);

byte[] encrypted = cipher.doFinal(sSrc.getBytes("utf-8"));

return new Base64().encodeToString(encrypted);//此处使用BASE64做转码功能,同时能起到2次加密的作用。

}

// 解密

public static String Decrypt(String sSrc, String sKey) throws Exception {

try {

// 判断Key是否正确

if (sKey == null) {

System.out.print("Key为空null");

return null;

}

// 判断Key是否为16位

if (sKey.length() != 16) {

System.out.print("Key长度不是16位");

return null;

}

byte[] raw = sKey.getBytes("utf-8");

SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");

Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");

cipher.init(Cipher.DECRYPT_MODE, skeySpec);

byte[] encrypted1 = new Base64().decode(sSrc);//先用base64解密

try {

byte[] original = cipher.doFinal(encrypted1);

String originalString = new String(original,"utf-8");

return originalString;

} catch (Exception e) {

System.out.println(e.toString());

return null;

}

} catch (Exception ex) {

System.out.println(ex.toString());

return null;

}

}

public static void main(String[] args) throws Exception {

/*

* 此处使用AES-128-ECB加密模式,key需要为16位。

*/

String cKey = "1234567890123456";

// 需要加密的字串

String cSrc = "www.gowhere.so";

System.out.println(cSrc);

// 加密

String enString = AES.Encrypt(cSrc, cKey);

System.out.println("加密后的字串是:" + enString);

// 解密

String DeString = AES.Decrypt(enString, cKey);

System.out.println("解密后的字串是:" + DeString);

}

}

原文:https://www.cnblogs.com/chen-lhx/p/5817161.html

java aes ecb_java使用AES加密解密 AES-128-ECB加密相关推荐

  1. AES加密解密SHA1、SHA加密MD5加密

    AES加密解密 SHA1.SHA加密 MD5加密 二话不说马上附上代码: package com.luo.util; import java.io.UnsupportedEncodingExcepti ...

  2. [crypto]-52-python3中rsa(签名验签加密解密)aes(ecb cbc ctr)hmac的使用,以及unittest测试用

    环境: 在ubuntu14.04下,记得安装:sudo pip3 install pycrypto 代码示例1: =========================== import base64 f ...

  3. php自写代码加密,加密解密:教你加密自己写的VBS代码

    今天在删自己的黑历史时,突然发现了几个VBS文件..发现了以前写的vbs代码加密器. [mb_view]手机上就别玩了 至于为什么你懂的[/mb_view] 首先,我们都知道,VBS代码可以直接被看到 ...

  4. php ecb加密,PHP之DES加密解密算法类(ECB模式)(实例教程)

    PHP中加密解密函数与DES加密解密的应用实例:<?php define('SMS_KEY', 'K0e5293b'); class DesUtil{ public function encry ...

  5. Go Nodejs Java Aes 128 ECB加密解密结果保持一致

    在多语言的生产环境下,常常是由一种语言进行加密而由另一种语言来进行解密,因此有必要保持各种语言之间加密解密算法的一致性.下面列出了Go,Nodejs,Java 的 Aes-128-Ecb的加密解密算法 ...

  6. RSA加密解密DES加密解密AES

    文章目录 RSA java 依赖 RSACoder RSACoderTest js示例 DES 示例一 js java 示例2 js java AES AesUtil RSA java 依赖 < ...

  7. 在线加密解密网站(对称加密:AES、DES、RC,非对称加密:RSA)

    前两天写AES加密相关代码,学习的同时找到一个在线加密解密的网站,帮助自己快速理解了一下,推荐给学习加密的同学.在线加密网站,一开始接触加密(AES等)可以在这里体验下加密与解密,助于快速理解加密模式 ...

  8. 记录一个视频加密解密--AES 进阶版 (EVP)

    OpenSSL 是一个开源的软件库,提供了一组用于进行加密.解密.哈希和证书操作的函数和工具.其中,EVP(Envelope Cryptography API)是 OpenSSL 中的一个模块,用于处 ...

  9. java中完成md5加密解密_java实现md5加密解密 notNET中加密和解密的实现方法

    java实现md5加密解密 notNET中加密和解密的实现方法 亦或是旅途风光 7-14 1918℃ 22 [ ee21.cn - ASP.NET ] .NET将原来独立的API和SDK合并到一个框架 ...

  10. java 3des加密_Java使用3DES加密解密的流程 - 3des加密解密详细解释

    Java使用3DES加密解密的流程 ①传入共同约定的密钥(keyBytes)以及算法(Algorithm),来构建SecretKey密钥对象 SecretKey deskey = new Secret ...

最新文章

  1. C语言函数知识体系大学霸IT达人
  2. OpenCV中6种访问Mat元素的方法
  3. Android魔法(第二弹)——一步步实现淹没、展开效果
  4. python webviewer爬虫_爬虫再也不怕检测浏览器环境了
  5. Windows坐标系统
  6. OpenGL 法线贴图 切线空间 整理
  7. 荣耀鸿蒙os2.0公测版,鸿蒙OS 2.0他来了!华为HarmonyOS 2.0开发者公测版正式推送
  8. Ubuntu 下解压tar.xz方法
  9. Redis数据结构、持久化、缓存技术和集群详解
  10. 现在入坑 AI 太迟?这些程序员发现了掘金新出路
  11. 【Task2(2天)】特征工程
  12. jq数组清空_JQuery 数组获取和删除元素
  13. 有别于普通专线的BGP线路
  14. 网易2019实习生招聘算法题(一)
  15. Unity 程序升级(PC版非热更新)
  16. 【更新】本地提权工具公开|CVE-2020-0796:微软发布SMBv3协议“蠕虫级”漏洞补丁通告
  17. size balanced tree (平衡二叉树) ----- 傻X树----陈启峰论文
  18. Nuxt3 -- 组件 Components
  19. 华科计算机博导刘云生论文,关于对博士学位论文进行盲审的通知
  20. Windows MSDN 操作系统微软官方镜像

热门文章

  1. unity 2d贴图
  2. 大数据时代下的小公益
  3. Win11远程协助灰色无法勾选?Win11远程协助不能选择的解决方法
  4. mysql mpp_MPP调研
  5. Elasticsearch 7.X-8.0 AggregationBuliders 相关聚合函数(一)计数指标-百分位数
  6. 彻底删除的文件怎么恢复,恢复删除文件的方法
  7. 计算机毕业设计之java+ssm供应链管理信息系统
  8. 华为二层交换机与路由器对接上网
  9. Vertica ros和wos介绍
  10. ABD — android debug bridge 简略介绍