package com.Dao;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
public class EncryptUtil
{
/**
* AES加密算法
*
* @param sSrc
* @param sKey
* @return
* @throws Exception [参数说明]
*
* @return String [加密后字符串]
* @exception throws [违例类型] [违例说明]
* @see [类、类#方法、类#成员]
* @author
*/
public static String encrypt(String sSrc, String sKey)
throws Exception
{
if (null == sKey || null == sSrc)
{
return null;
}
byte[] raw = sKey.getBytes("ASCII");
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] encrypted = cipher.doFinal(sSrc.getBytes());
return byteTS(encrypted).toLowerCase();
}
/**
* AES解密算法
*
* @param sSrc
* @param sKey
* @return
* @throws Exception [参数说明]
*
* @return String [解密后字符串]
* @exception throws [违例类型] [违例说明]
* @see [类、类#方法、类#成员]
* @author
*/
public static String decrypt(String sSrc, String sKey)
throws Exception
{
try
{
// 判断Key是否正确
if (null == sKey || null == sSrc)
{
return null;
}
byte[] raw = sKey.getBytes("ASCII");
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, skeySpec);
byte[] encrypted1 = sTByte(sSrc);
try
{
byte[] original = cipher.doFinal(encrypted1);
String originalString = new String(original);
return originalString;
}
catch (Exception e)
{
return null;
}
}
catch (Exception ex)
{
throw ex;
}
}
分享到:
相关推荐
1. **密钥扩展**:AES加密需要一个密钥,但这个密钥不能直接用于加密,需要通过一个密钥扩展算法将其扩展为多轮所需的轮密钥。 2. **状态矩阵**:AES处理的数据被组织成4x4的字节矩阵,称为状态。加密和解密过程中...
在QT中实现AES(Advanced Encryption Standard)加密算法,可以帮助开发者确保数据的安全性,防止未授权的访问和篡改。AES是目前国际上广泛采用的一种块密码标准,因其高效性和安全性而备受推崇。 AES加密算法基于...
### C# 实现 AES 加密解密算法 #### 概述 在计算机科学与信息安全领域,数据加密技术是一项至关重要的技术。AES(Advanced Encryption Standard,高级加密标准)是一种广泛使用的对称加密算法,用于保护敏感数据的...
### AES加密算法在Delphi中的实现 AES(Advanced Encryption Standard,高级加密标准)是一种对称加密算法,被广泛应用于数据安全领域。它采用固定的数据块大小(128位),支持128、192或256位密钥长度。在Delphi中...
AES加密算法,全称为Advanced Encryption Standard,是一种广泛应用的对称加密技术,用于保护数据的机密性。在C++环境中实现AES加密算法,通常涉及到的关键概念包括密钥、明文、密文、加密过程和解密过程。源码中...
实现的AES加密解密算法,高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加密和解密用相同的密钥
AES加密算法详解 AES加密算法是当前最流行和最安全的对称加密算法之一,也是美国国家标准技术研究所(NIST)指定的高级加密标准(AES)。AES加密算法的设计原则是能够抵抗所有已知的攻击,在各种平台上易于实现,...
AES,全称Advanced Encryption Standard,即高级加密标准,是一种广泛应用于现代电子设备的对称加密算法,用于保护数据的安全性。在iOS和Android平台上实现AES加密解密是开发者经常遇到的任务,尤其对于需要跨平台...
AES 加密算法详解 AES 加密算法是目前最流行的对称加密算法之一,由比利时 cryptographer Joan Daemen 和 Vincent Rijmen 设计。AES 加密算法的主要特点是高效、安全、灵活,可以应用于各种加密场景。 一、AES ...
1. **密钥和初始向量的生成**:AES的加密过程需要一个密钥,根据不同的AES模式(如ECB、CBC、CFB等),可能还需要一个初始向量。密钥的长度可以是128位、192位或256位,而初始向量在某些模式下用于增加加密的随机性...
AES加密算法Dll是一个用于在项目中实现AES加密功能的动态链接库(Dll)文件。AES,全称为“高级加密标准”(Advanced Encryption Standard),是一种广泛应用于数据加密的标准算法,尤其在网络安全、数据保护和隐私...
VB6-AES加密算法源码是一个用于VB6(Visual Basic 6)开发环境的加密工具,它实现了AES(Advanced Encryption Standard)加密标准。AES是一种广泛使用的对称加密算法,为数据提供高强度的安全保护。该源码经过验证,...
### 基于ARM嵌入式系统的AES加密算法实现 #### 概述 随着信息技术的快速发展及互联网的应用普及,信息安全成为了一个不容忽视的问题。在这一背景下,《基于ARM嵌入式系统的AES加密算法实现》这篇文章详细介绍了...
AES加密解密轮转算法工具,最大支持256bit长度的密钥,明文支持HEX和字串。可供学习设计参考。
本教程主要关注如何在MATLAB环境中实现AES加密算法,适合本科及硕士级别的学生进行教研学习。 首先,我们来看一下提供的文件: 1. `ASE_key.m`:这个文件可能包含了生成AES密钥的函数。AES的密钥长度可以是128、...
**AES(Advanced Encryption Standard)**,中文名为高级加密标准,是一种广泛应用的块密码算法,用于保护数据的安全。它由NIST(美国国家标准与技术研究院)在2001年正式采纳,取代了之前的DES(数据加密标准)成为...
**AES加密算法** AES,全称为“高级加密标准”(Advanced Encryption Standard),是目前广泛使用的对称加密算法,尤其在硬件实现中,如FPGA(Field-Programmable Gate Array)上,其高速、高效的特点得到了广泛...
AES 加密算法详解 AES 加密算法是美国国家标准与技术研究所用于加密电子数据的规范。它被预期能成为人们公认的加密包括金融、电信和政府数字信息的方法。AES 使用128、192 和 256 位密钥,并且用128 位(16 字节)...
**AES (高级加密标准) 算法详解** AES(Advanced Encryption Standard)是现代密码学中最常用、最安全的块密码之一,它以其高效、灵活和强大的安全性在全球范围内被广泛应用于数据加密。AES是由NIST(美国国家标准...
本教程旨在通过简洁明了的方式,帮助你理解和掌握AES加密算法。 首先,AES的工作原理基于替换和置换两大部分,包括字节代换、行移位、列混淆和轮密钥加四个步骤。这些操作在128位的数据块(称为状态)上进行,其中...