java aes ecb_java使用AES加密解密 AES-128-ECB加密
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加密相关推荐
- AES加密解密SHA1、SHA加密MD5加密
AES加密解密 SHA1.SHA加密 MD5加密 二话不说马上附上代码: package com.luo.util; import java.io.UnsupportedEncodingExcepti ...
- [crypto]-52-python3中rsa(签名验签加密解密)aes(ecb cbc ctr)hmac的使用,以及unittest测试用
环境: 在ubuntu14.04下,记得安装:sudo pip3 install pycrypto 代码示例1: =========================== import base64 f ...
- php自写代码加密,加密解密:教你加密自己写的VBS代码
今天在删自己的黑历史时,突然发现了几个VBS文件..发现了以前写的vbs代码加密器. [mb_view]手机上就别玩了 至于为什么你懂的[/mb_view] 首先,我们都知道,VBS代码可以直接被看到 ...
- php ecb加密,PHP之DES加密解密算法类(ECB模式)(实例教程)
PHP中加密解密函数与DES加密解密的应用实例:<?php define('SMS_KEY', 'K0e5293b'); class DesUtil{ public function encry ...
- Go Nodejs Java Aes 128 ECB加密解密结果保持一致
在多语言的生产环境下,常常是由一种语言进行加密而由另一种语言来进行解密,因此有必要保持各种语言之间加密解密算法的一致性.下面列出了Go,Nodejs,Java 的 Aes-128-Ecb的加密解密算法 ...
- RSA加密解密DES加密解密AES
文章目录 RSA java 依赖 RSACoder RSACoderTest js示例 DES 示例一 js java 示例2 js java AES AesUtil RSA java 依赖 < ...
- 在线加密解密网站(对称加密:AES、DES、RC,非对称加密:RSA)
前两天写AES加密相关代码,学习的同时找到一个在线加密解密的网站,帮助自己快速理解了一下,推荐给学习加密的同学.在线加密网站,一开始接触加密(AES等)可以在这里体验下加密与解密,助于快速理解加密模式 ...
- 记录一个视频加密解密--AES 进阶版 (EVP)
OpenSSL 是一个开源的软件库,提供了一组用于进行加密.解密.哈希和证书操作的函数和工具.其中,EVP(Envelope Cryptography API)是 OpenSSL 中的一个模块,用于处 ...
- java中完成md5加密解密_java实现md5加密解密 notNET中加密和解密的实现方法
java实现md5加密解密 notNET中加密和解密的实现方法 亦或是旅途风光 7-14 1918℃ 22 [ ee21.cn - ASP.NET ] .NET将原来独立的API和SDK合并到一个框架 ...
- java 3des加密_Java使用3DES加密解密的流程 - 3des加密解密详细解释
Java使用3DES加密解密的流程 ①传入共同约定的密钥(keyBytes)以及算法(Algorithm),来构建SecretKey密钥对象 SecretKey deskey = new Secret ...
最新文章
- C语言函数知识体系大学霸IT达人
- OpenCV中6种访问Mat元素的方法
- Android魔法(第二弹)——一步步实现淹没、展开效果
- python webviewer爬虫_爬虫再也不怕检测浏览器环境了
- Windows坐标系统
- OpenGL 法线贴图 切线空间 整理
- 荣耀鸿蒙os2.0公测版,鸿蒙OS 2.0他来了!华为HarmonyOS 2.0开发者公测版正式推送
- Ubuntu 下解压tar.xz方法
- Redis数据结构、持久化、缓存技术和集群详解
- 现在入坑 AI 太迟?这些程序员发现了掘金新出路
- 【Task2(2天)】特征工程
- jq数组清空_JQuery 数组获取和删除元素
- 有别于普通专线的BGP线路
- 网易2019实习生招聘算法题(一)
- Unity 程序升级(PC版非热更新)
- 【更新】本地提权工具公开|CVE-2020-0796:微软发布SMBv3协议“蠕虫级”漏洞补丁通告
- size balanced tree (平衡二叉树) ----- 傻X树----陈启峰论文
- Nuxt3 -- 组件 Components
- 华科计算机博导刘云生论文,关于对博士学位论文进行盲审的通知
- Windows MSDN 操作系统微软官方镜像