import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.util.Arrays; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; public class EncryptUtil { public static final String ALGORITHM = "SHA-256"; private static final String _KEY = "qwertyuiop1234567890"; public static String SHA256Encrypt(String orignal) { MessageDigest md = null; try { md = MessageDigest.getInstance(ALGORITHM); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } if (null != md) { md.update(orignal.getBytes()); return getDigestStr(md.digest()); } return null; } private static String getDigestStr(byte[] origBytes) { String tempStr = null; StringBuilder stb = new StringBuilder(); for (int i = 0; i < origBytes.length; i++) { tempStr = Integer.toHexString(origBytes[i] & 0xff); if (tempStr.length() == 1) { stb.append("0"); } stb.append(tempStr); } return stb.toString(); } private static final byte[] hex2byte(String hex) throws IllegalArgumentException { if (hex.length() % 2 != 0) { throw new IllegalArgumentException(); } char[] arr = hex.toCharArray(); byte[] b = new byte[hex.length() / 2]; for (int i = 0, j = 0, l = hex.length(); i < l; i++, j++) { String swap = "" + arr[i++] + arr[i]; int byteint = Integer.parseInt(swap, 16) & 0xFF; b[j] = new Integer(byteint).byteValue(); } return b; } private static String hexStringToString(String hexString) { int encodeType = 2; String result = ""; int max = hexString.length() / encodeType; for (int i = 0; i < max; i++) { char c = (char)hexStringToAlgorism(hexString.substring(i * encodeType, (i + 1) * encodeType)); result += c; } return result; } private static int hexStringToAlgorism(String hex) { hex = hex.toUpperCase(); int max = hex.length(); int result = 0; for (int i = max; i > 0; i--) { char c = hex.charAt(i - 1); int algorism = 0; if (c >= '0' && c <= '9') { algorism = c - '0'; } else { algorism = c - 55; } result += Math.pow(16, max - i) * algorism; } return result; } public static String AESencrypt(String content) { try { KeyGenerator kgen = KeyGenerator.getInstance("AES"); kgen.init(128, new SecureRandom(_KEY.getBytes())); SecretKey secretKey = kgen.generateKey(); byte[] enCodeFormat = secretKey.getEncoded(); SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES"); Cipher cipher = Cipher.getInstance("AES"); byte[] byteContent = content.getBytes("utf-8"); cipher.init(Cipher.ENCRYPT_MODE, key); byte[] result = cipher.doFinal(byteContent); return getDigestStr(result); } catch (Exception e) { e.printStackTrace(); } return null; } public static String AESdecrypt(String str) { byte[] content = hex2byte(str); try { KeyGenerator kgen = KeyGenerator.getInstance("AES"); kgen.init(128, new SecureRandom(_KEY.getBytes())); SecretKey secretKey = kgen.generateKey(); byte[] enCodeFormat = secretKey.getEncoded(); SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES"); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.DECRYPT_MODE, key); byte[] result = cipher.doFinal(content); return hexStringToString(getDigestStr(result)); } catch (Exception e) { e.printStackTrace(); } return null; } }
相关推荐
C#作为一种强大的.NET编程语言,提供了丰富的加密机制来确保敏感信息的安全。本资源“C#加密机制实例源码-口令加密Exe【201903】”正是针对这一需求,提供了一个用C#实现的口令加密应用程序的实例源码。 口令加密是...
### 使用Java加密机制保护数据 #### 一、Java加密机制简介 Java开发工具包(JDK)提供了强大的加密和安全支持功能,这对于开发者来说是非常重要的。JDK中的加密支持不仅能够帮助开发者保护数据的安全性,还能确保...
WLAN安全对策,基于混沌序列的RFID加密机制
C#加密机制实例源码-口令加密Exe__0525).rar
C#作为一种强大的.NET框架编程语言,提供了丰富的加密机制来确保信息的安全。本实例主要探讨的是使用C#进行口令加密,以保护应用程序(Exe)中的敏感数据。下面将详细介绍C#加密机制以及口令加密的实现方式。 一、...
本篇文章将详细探讨C#中的加密机制,并结合提供的“口令加密Exe”实例源码,解析如何在实际项目中应用这些知识。 C#加密主要依赖于.NET Framework或.NET Core提供的System.Security.Cryptography命名空间,该命名...
在C#编程语言中,加密机制是保护数据安全的关键组成部分。本实例源码"口令加密Exe_45"提供了使用C#实现基于口令的加密方法,这对于开发安全的应用程序至关重要。以下是对该主题的详细解释: 1. **加密的基本概念**...
【Android客户端应用开发】在Android平台上,为了保护用户数据的安全,通常会采用文件加密机制。然而,现有的Android文件加密机制存在一个显著的问题,即在确保数据安全性的同时,往往牺牲了I/O性能,导致读写速度...
C#作为一种强大的编程语言,提供了丰富的加密机制来确保敏感信息的安全。这个压缩包“C#加密机制实例源码-口令加密Exe__(0521).rar”显然包含了关于C#密码加密的源代码实例,可以帮助开发者深入理解并应用C#的加密...
C#作为一种广泛使用的编程语言,提供了丰富的加密机制来确保数据的安全性。本资源“C#加密机制实例源码-口令加密Exe.rar”正是一个专注于C#密码加密技术的实例应用,包含了源代码,可以帮助开发者更好地理解和实现...
加密机制大体上可以分为对称加密和非对称加密两大类。对称加密使用相同的密钥进行加密和解密操作,而非对称加密则涉及一对密钥:公钥和私钥。本文将详细介绍两种代表性的加密算法:DES(数据加密标准)和RSA(由...
Android移动设备数据加密机制,主要是讲解Android系统怎么对数据进行加密
C#作为一种强大的面向对象的编程语言,提供了丰富的加密机制来确保数据的安全性。本文将深入探讨C#中的加密技术,特别是口令加密Exe的实例,这通常涉及到对用户密码进行安全存储和验证。 在C#中,我们可以使用内置...
【云计算中属性基加密机制研究】 云计算作为一种新兴的计算模式,已经深入到各个行业和领域。然而,随着数据量的快速增长和对隐私保护的需求日益增强,传统的加密技术在云环境中面临着诸多挑战。属性基加密...
C#作为一种强大的面向对象的编程语言,提供了多种加密机制来确保数据的安全性。本文将深入探讨C#中的加密技术,特别是口令加密的实现,这正是"C#加密机制实例源码-口令加密Exe__0525.rar"这个压缩包文件所包含的内容...