`
gybmike
  • 浏览: 182603 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

简单的ASE加密解密功能

    博客分类:
  • java
阅读更多



import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import java.security.Security;

/*
 *简单的ASE加密解密功能
 */
public class emisSecurity {

  private static KeyGenerator keygen ;
  private static SecretKey secretKey;
  private static Cipher cipher;
  private static emisSecurity security = null;

  private emisSecurity(){

  }

  public static emisSecurity getInstance() throws Exception{
      if(security == null){
        security = new emisSecurity();
        keygen = KeyGenerator.getInstance("AES");
        secretKey = keygen.generateKey();
        cipher =Cipher.getInstance("AES");
      }
    return security;
  }


  //加密
  public String encrypt(String str) throws Exception{
    cipher.init(Cipher.ENCRYPT_MODE,secretKey);

    byte [] src =  str.getBytes();
    byte [] enc = cipher.doFinal(src);

    return parseByte2HexStr(enc);
  }


  //解密
  public String decrypt(String str) throws Exception{
    cipher.init(Cipher.DECRYPT_MODE,secretKey);

    byte[] enc = parseHexStr2Byte(str);
    byte [] dec = cipher.doFinal(enc);

    return new String(dec);
  }

  /**将16进制转换为二进制
   * @param hexStr
   * @return
   */
  public static byte[] parseHexStr2Byte(String hexStr) {
    if (hexStr.length() < 1)
      return null;
    byte[] result = new byte[hexStr.length()/2];
    for (int i = 0;i< hexStr.length()/2; i++) {
      int high = Integer.parseInt(hexStr.substring(i*2, i*2+1), 16);
      int low = Integer.parseInt(hexStr.substring(i*2+1, i*2+2), 16);
      result[i] = (byte) (high * 16 + low);
    }
    return result;
  }

  /**将二进制转换成16进制
   * @param buf
   * @return
   */
  public static String parseByte2HexStr(byte buf[]) {
    StringBuffer sb = new StringBuffer();
    for (int i = 0; i < buf.length; i++) {
      String hex = Integer.toHexString(buf[i] & 0xFF);
      if (hex.length() == 1) {
        hex = '0' + hex;
      }
      sb.append(hex.toUpperCase());
    }
    return sb.toString();
  }






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

    String str = "select * from users 我";
    String ss =  emisSecurity.getInstance().encrypt(str) ;
    System.out.println(ss);
    System.out.println(emisSecurity.getInstance().decrypt(ss));

  }

}

分享到:
评论

相关推荐

    Qt实现AES加密解密

    这个程序应当包含了上述知识点的具体应用,你可以通过阅读源代码、编译和运行来进一步理解和学习AES加密解密的实现细节。这个实战例程可以帮助开发者更好地掌握Qt环境下的加密解密操作,提高数据安全保护能力。

    ASE双语加解密工具类(java,net)

    通过这样的工具类,开发者可以在Java和.NET项目中方便地调用相同的加密解密接口,实现数据的安全传输和存储。 总结,ASE双语加解密工具类为Java和.NET开发者提供了一个统一的接口,便于在两个平台上实现安全的数据...

    微信小程序 AES ECB base64 加密解密

    `js.txt`可能包含了上述的加密解密函数实现,而`aes_ecb`可能是加密后的结果,用于测试解密功能是否正常。在实际项目中,确保对这些敏感资源进行妥善管理和保护。 总的来说,理解并正确使用AES ECB Base64加密解密...

    AES实现加密和解密的动态库

    这个动态库提供了AES加密和解密的功能,对于理解和应用AES技术具有重要意义。 AES的全称为高级加密标准,是由NIST(美国国家标准与技术研究院)在2001年正式采纳的,用于替代原先的DES(数据加密标准)。AES采用了...

    ase.zip_ase加密源代码_信息加密案例

    在CryptTest这个文件中,我们可能找到的是一个测试用例,用于验证加密和解密功能是否正常工作。这个测试可能包括各种边界条件,比如空字符串、小数据块、大数据块的加密,以及不同密钥的使用情况。测试用例应该能够...

    matlab实现AES加密和解密算法

    MATLAB2019a版本提供了丰富的数学计算功能,使得实现这种复杂的算法变得相对简单。 AES的核心过程包括四个基本操作:字节代换(SubBytes)、行位移(ShiftRows)、列混淆(MixColumns)和密钥扩展(KeyExpansion)...

    AES标准加密解密方法

    ElAES是一个实现了AES标准的开源库,它可以提供AES的加密和解密功能,适用于各种编程语言,如Java、C++、Python等。对于Delphi这种古老的开发环境,ElAES库提供了很好的兼容性,不仅在低版本中可以稳定运行,高版本...

    ASE和RSA加解密

    在"AesRsa"这个文件夹中,可能包含了实现这些加密解密过程的代码示例,包括ASE和RSA的加解密函数,以及可能的密钥生成、存储和加载功能。分析这些代码可以帮助我们更好地理解这两种加密技术在实际项目中的应用。

    VB加密解密源码

    4. 顶级的ASE加密解密算法:ASE,即AES(Advanced Encryption Standard),是一种高级加密标准,使用对称密钥加密,效率高且安全性强。VB中可以通过.NET Framework提供的System.Security.Cryptography命名空间内的类...

    openssl RSA、ASE加密

    **OpenSSL库与RSA、ASE加密** OpenSSL是一个强大的安全套接字层密码库,包含各种主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供丰富的应用程序供测试或其他目的使用。在信息安全领域,加密技术...

    Linux上运行的C语言的AES加密算法

    - **内存管理**:在处理加密和解密的过程中,需要合理地分配和释放内存,防止内存泄漏。 - **错误处理**:加密过程中可能出现各种错误,如密钥不匹配、初始化向量问题等,因此需要编写良好的错误处理代码,确保程序...

    vb6.0下AES加解密模块,可对字符和文件进行加解密

    在VB6.0环境下,开发一个能够实现AES(Advanced Encryption Standard)加解密功能的模块是信息安全中的一个重要实践。AES是一种广泛使用的块密码标准,它提供了强效的加密能力,适用于保护敏感数据,如个人隐私、...

    vb.net AES加密解密模块 VS2010

    总的来说,“vb.net AES加密解密模块 VS2010”提供了一个实用的工具,帮助开发者在VB.NET环境中轻松地实现AES加密和解密功能。通过这个模块,可以确保敏感信息的安全,防止未经授权的访问。无论是存储用户密码、保护...

    通用AES加密版本

    AES(Advanced Encryption Standard)是一种广泛使用的对称...同时,"Imcorenet"可能是这个通用AES加密库的名字或者一个网络通信相关的组件,它可能包含了这些加密功能的封装,方便开发者在实际项目中快速集成和使用。

    AES.rar_https ://aes63.com_https://aes63.com/_spreadtw4_接口Ase加密

    描述中提到的“接口Ase加密”可能是指提供了AES加密功能的API接口,允许开发者在程序中直接调用以实现数据加密。这样的接口通常会包含加密和解密两个方法,用户需要提供明文数据和密钥。使用时,先进行初始化,设置...

    AES加密算法接口及Delphi示例源程序

    这些库提供了方便的接口,允许开发者快速集成AES加密功能到他们的项目中。例如,`CryptoLib4Pascal`库提供了`TCipherAES`类,该类包含了AES加密和解密的方法。 2. **AES接口**:一个基本的AES加密接口通常包含以下...

    aes-128加解密

    在描述中提到“亲测可用”,这表明这个库经过了实际验证,能够正确执行加密和解密功能。 AES-128的加解密过程分为以下几个主要步骤: 1. **密钥扩展**:首先,128位的用户密钥被扩展成多个轮密钥,用于后续的每一...

    基于AES的CRT模式加密 (用C#写的)

    描述中提到,该程序界面简单,仅通过输入输出框进行交互,这意味着它可能没有提供文件加密功能,而是专注于字符串或小数据块的加密和解密。这适合学习和理解AES-CRT模式的原理,但实际应用中,通常会需要文件级别的...

    Python实现对字符串的加密解密方法示例

    本文实例讲述了Python实现对字符串的加密解密方法。分享给大家供大家参考,具体如下: 需求是是要将密码存在数据库里,所以要加密解密是可逆的,在数据库里不要有特殊字符,防止数据库备份和恢复中出错。 安装...

    Sybase ASE15简介之三——数据加密

    Sybase ASE15中新增的磁盘数据加密功能可以有效地对介质(如磁盘)上的数据进行加密,只有合法的用户才能在数据库管理下,访问到这些数据。Sybase ASE15通过自身的数据库安全机制管理数据的加解密工作,无需修改应用...

Global site tag (gtag.js) - Google Analytics