1. MD5加密,常用于加密用户名密码,当用户验证时。
import java.security.MessageDigest;
public class EncryptUtil { public static String encrypt(String s) { char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; try { byte[] strTemp = s.getBytes(); MessageDigest mdTemp = MessageDigest.getInstance("MD5"); mdTemp.update(strTemp); byte[] md = mdTemp.digest(); int j = md.length; char str[] = new char[j * 2]; int k = 0; for (int i = 0; i < j; i++) { byte byte0 = md[i]; str[k++] = hexDigits[byte0 >>> 4 & 0xf]; str[k++] = hexDigits[byte0 & 0xf]; } return new String(str); } catch (Exception e) { e.printStackTrace(); return null; } } }
|
2. SHA加密,与MD5相似的用法,只是两者的算法不同。
protected byte[] encrypt(byte[] obj) ...{ try ...{ MessageDigest sha = MessageDigest.getInstance("SHA"); sha.update(obj); return sha.digest(); } catch (NoSuchAlgorithmException e) ...{ e.printStackTrace(); } } |
3. RSA加密,RAS加密允许解密。常用于文本内容的加密。
import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; import javax.crypto.Cipher; /** *//** * RSAEncrypt * * @author maqujun * @see */ public class RSAEncrypt ...{ /** *//** * Main method for RSAEncrypt. * @param args */ public static void main(String[] args) ...{ try ...{ RSAEncrypt encrypt = new RSAEncrypt(); String encryptText = "encryptText"; KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA"); keyPairGen.initialize(1024); KeyPair keyPair = keyPairGen.generateKeyPair(); // Generate keys RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate(); RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic(); byte[] e = encrypt.encrypt(publicKey, encryptText.getBytes()); byte[] de = encrypt.decrypt(privateKey,e); System.out.println(encrypt.bytesToString(e)); System.out.println(encrypt.bytesToString(de)); } catch (Exception e) ...{ e.printStackTrace(); } } /** *//** * Change byte array to String. * @return byte[] */ protected String bytesToString(byte[] encrytpByte) ...{ String result = ""; for (Byte bytes : encrytpByte) ...{ result += (char) bytes.intValue(); } return result; } /** *//** * Encrypt String. * @return byte[] */ protected byte[] encrypt(RSAPublicKey publicKey, byte[] obj) ...{ if (publicKey != null) ...{ try ...{ Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE, publicKey); return cipher.doFinal(obj); } catch (Exception e) ...{ e.printStackTrace(); } } return null; } /** *//** * Basic decrypt method * @return byte[] */ protected byte[] decrypt(RSAPrivateKey privateKey, byte[] obj) ...{ if (privateKey != null) ...{ try ...{ Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.DECRYPT_MODE, privateKey); return cipher.doFinal(obj); } catch (Exception e) ...{ e.printStackTrace(); } } return null; } } |
分享到:
相关推荐
Java中的加密算法在信息安全领域扮演着重要角色,用于保护数据的隐私性和完整性。本文将详细介绍在Java中常见的三种加密算法:MD5、SHA以及RSA,并探讨它们的应用场景和实现方式。 1. MD5(Message-Digest ...
根据密钥类型不同将现代密码技术分为两类:对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)。 对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的...
Java 中常用的加密算法 MD5,SHA,RSA Java 中常用的加密算法有多种,包括 MD5、SHA 和 RSA 等,这些算法在不同的应用场景中发挥着重要作用。下面将对这些算法进行详细的介绍和分析。 一、MD5 加密算法 MD5...
### Java常用几种加密算法 在Java开发中,数据的...以上就是关于Java中常用的几种加密算法——MD5、SHA及RSA的基本介绍和应用示例。通过理解这些加密算法的工作原理和应用场景,可以帮助开发者更好地保护数据安全。
本文将详细介绍Java中常见的加密算法的实现,以及如何在JDK 1.8环境下进行操作。 1. **对称加密算法** 对称加密是最基础的加密方式,使用相同的密钥进行加密和解密。Java中提供了`javax.crypto`包来支持此类算法,...
十四、JAVA 中常用的加密算法
在Java中,我们可以使用多种加密算法来实现数据的安全传输和存储。以下将详细介绍几种常见的Java加密算法及其工作原理。 1. **对称加密算法** 对称加密算法使用相同的密钥进行加密和解密,速度快,效率高,适合...
"Java实现的对称加密算法AES定义与用法详解" 对称加密算法AES是当前使用最多的加密算法之一,其主要特点是高级的、安全的、快速的和灵活的。下面我们将详细介绍Java实现的对称加密算法AES的定义、特点、用法及使用...
本篇文章将详细介绍Java中常用的加密算法及其实现原理。我们将首先介绍对称加密算法,包括DES、AES和RC4。然后,我们将介绍非对称加密算法,包括RSA和DSA。继而,我们将介绍散列算法,包括MD5和SHA,最后,我们将...
在Java中,有多种加密算法可供选择,如AES、DES和RSA,每种都有其特定的应用场景和优势。下面将详细介绍这些算法以及相关的学习要点。 1. **AES(Advanced Encryption Standard)**:高级加密标准,是一种对称加密...
总结来说,理解和正确使用Java中的AES和DES加密算法,需要考虑密钥管理、初始化向量、填充模式、编码以及错误处理等多个方面,同时要关注加密过程中的安全风险和潜在陷阱。在实践中,结合合适的加密库和最佳实践,...
主要介绍了Java常用加密算法,结合实例形式总结分析了base64、md5、sha、rsa、des等加密算法实现技巧,需要的朋友可以参考下
本文旨在探讨Java中的加密算法及其应用场景,帮助读者更好地理解如何在Java环境中实现数据加密。 #### 二、加密算法种类 加密算法按其工作方式可以分为对称加密算法和非对称加密算法两大类。对称加密算法使用同一...
这个压缩包文件"Java中常用的加密算法RSA.doc"可能包含更详细的内容,如具体的代码示例、原理解释或应用场景分析。对于学习和理解Java中的RSA加密算法,阅读这份文档会是一个很好的资源。无论你是初学者还是有经验的...
2. 在Java中实现对称加密算法,需要掌握如何使用Java加密扩展(Java Cryptography Extension, JCE),这是一套加密算法API,可以方便地在Java程序中集成加密功能。 对DES算法而言,它是一个对称密钥的块加密算法,...
`JAVA上加密算法的实现用例`这个主题涵盖了Java中加密算法的基本概念、常用的加密库以及具体的代码示例。 首先,Java提供了一个内置的加密库,名为Java Cryptography Extension (JCE),它允许开发者使用各种加密...
加密算法计算器,支持DES 3DES CBC MAC SM2 SM3 SM4 MD5 SHA等 CPU卡,加密算法,java卡类行开发者助手!
在Java中,使用这些加密算法通常需要以下步骤: 1. 导入相关包,如`javax.crypto.*`,`java.security.*`。 2. 生成密钥(对于非对称加密如RSA)或直接使用预定义的密钥(对称加密如AES、DES)。 3. 初始化`Cipher`...
在JAVA中实现Diffie-Hellman密钥交换协议需要使用到`java.security.KeyAgreement`类。具体步骤如下: 1. **生成密钥材料**:使用`KeyPairGenerator`生成密钥对。 2. **初始化密钥交换对象**:使用`KeyAgreement`...