1. MD5加密,常用于加密用户名密码,当用户验证时。
protected byte[] encrypt(byte[] obj) ...{
try ...{
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(obj);
return md5.digest();
} catch (NoSuchAlgorithmException e) ...{
e.printStackTrace();
}
}
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;
}
}
- 浏览: 214822 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (397)
- j2se (28)
- nio (3)
- 易错点 (3)
- 面试ssh (9)
- ssh整合 (11)
- jbpm+spring (2)
- js (15)
- 高级技术 (59)
- swing (3)
- 数据库 (16)
- hibernate (18)
- spring (19)
- 开发网站知识点 (9)
- jbpm (4)
- json (5)
- 设计模式 (22)
- 自定义标签 (1)
- j2ee (9)
- lucene (3)
- cahce (11)
- maven (5)
- html5 (1)
- 多数据源 (10)
- 页面聊天 (9)
- 富客户端 (1)
- android (13)
- aop+拦截器+jms (13)
- 框架整合 (1)
- 非阻塞io (24)
- 暂时不看 (13)
- webservice (3)
- oracle (3)
- 算法 (4)
- 协程 (2)
- netty (1)
- 爬虫 (0)
- 高级基础 (1)
- JVM调优总结 (12)
- 知识点技巧 (1)
- REST (0)
- 基础 io (2)
- dubbo (8)
- 线程 (1)
- spring源码 (2)
- git (1)
- office (2)
最新评论
-
sjzcmlt:
,写的挺好的啊
一个完整的负载均衡的例子 . -
他大姨妈:
网上大部分例子都是直接通过IdleStateHandler来实 ...
Netty的超时机制 心跳机制
发表评论
-
大型互联网架构概述
2014-10-30 15:44 0大型互联网架构 解决问题的通用思路是将分而治之(divid ... -
java RSA 不对称加密密钥生成、加密解密实例
2014-10-29 16:31 0package cn.steven.security; ... -
计算机科学中最重要的32个算法
2014-10-29 16:27 0奥地利符号计算研究所 ... -
程序员技术练级攻略
2014-10-29 16:25 0月光博客6月12日发表了 ... -
高性能Web应用打造攻略:扩展过程中20个最大的绊脚石
2014-10-29 16:21 0Sean Hull是Heavyweight Internet ... -
积少成多:十大高效原型设计工具
2014-10-29 16:19 0积少成多:十大高效 ... -
网站开发人员应该知道的62件事
2014-10-29 16:11 0有人在Stack Overflow 上发问,动手开发网站之 ... -
Java 写注册表
2014-10-29 15:28 0这里介绍的是利用registry向windows系统写注册 ... -
根据表信息生成JavaVO
2014-10-29 15:21 656package com.ustcsoft.util; ... -
利用soupUI3.5测试JMS消息
2014-10-29 15:19 496利用soupUI3.5测试JMS消息 1.安装要求 ... -
java调用shell
2014-10-29 15:18 565在写程序时,有时需要在java程序中调用shell脚本,可以 ... -
IP地址查询接口收集
2014-10-29 15:16 466新浪 IP 地址查询接口:http://counter.si ... -
windows查杀进程端口
2014-10-26 19:53 510Windows下查看进程及结束进程命令 1)查看占用808 ... -
首页静态化数据示例
2014-10-20 17:28 1248之前首页的数据都是动态加载的,后来发现效率问题就改进了些。 ... -
ssh测试
2014-06-19 12:53 410spring 测试 @Test public void ... -
struts做登录检验码
2014-04-19 20:04 578前台 <script type="text/j ...
相关推荐
下面将详细讨论几种经典的Java加密算法。 1. 对称加密算法: 对称加密算法使用相同的密钥进行加密和解密,效率高,适合大量数据的处理。Java中常见的对称加密算法包括: - DES(Data Encryption Standard):一种...
本文将详细介绍几种常用的Java加密算法及其应用实例,包括MD5、SHA及RSA。 #### 1. MD5加密 **简介**:MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,能够将任意长度的数据转换成一个固定长度...
这个名为"Java加密算法学习笔记的源码包"的压缩文件包含了关于Java中几种主要加密算法的实践代码和相关库,这对于理解和应用这些技术非常有帮助。 1. **Base64编码**: Base64是一种将二进制数据转化为可打印字符的...
以下将详细介绍几种常见的Java加密算法及其工作原理。 1. **对称加密算法** 对称加密算法使用相同的密钥进行加密和解密,速度快,效率高,适合大量数据的处理。Java中内置了DES(Data Encryption Standard)、3DES...
以下是对几种常见加密算法在Java中的实现的详细阐述: 1. **对称加密**: - **DES(Data Encryption Standard)**:是一种古老的对称加密算法,使用56位密钥进行64位块加密。Java中的`javax.crypto.Cipher`类提供...
### JAVA加密算法详解 #### 一、概述 在信息技术领域,加密技术是保障信息安全的关键手段之一。本篇文章将深入探讨JAVA平台上的加密算法实现,并重点介绍单钥密码体制及其应用场景。 #### 二、单钥密码体制...
在Java中实现RSA加密算法,主要涉及以下几个核心概念和步骤: 1. **RSA原理**:RSA算法基于数论中的大数因子分解难题,由两个大素数P和Q相乘得到N,然后计算N的欧拉函数φ(N) = (P-1) * (Q-1),选取一个与φ(N)互质...
在Java编程环境中,加密算法是信息安全领域中的重要组成部分,它为数据提供了保护,防止未经授权的访问和使用。本文将深入探讨“java版加密算法实验”,并基于描述中的内容,我们将会学习如何设计加密算法,理解其...
通用加密算法常常包括以下几种类型: 1. **对称加密**:如AES(Advanced Encryption Standard),它使用相同的密钥进行加密和解密,速度快但密钥分发是个挑战。 2. **非对称加密**:如RSA,使用一对公钥和私钥,公钥...
本文介绍了几种常用的加密算法,包括对称加密算法(如DES、3DES和AES)以及非对称加密算法(如RSA、DSA和ECC),并分析了它们之间的区别和应用场景。通过合理选择和使用这些加密算法,可以有效地保护数据的安全性。...
在Java中实现MD5加密算法主要涉及以下几个知识点: 1. **MD5的基本原理**:MD5是一种单向哈希函数,它的主要特点是快速、高效,并且对于输入数据的微小改变会产生显著不同的输出。尽管MD5已经不再被认为是安全的,...
在Java中实现SHA-256加密算法,可以使用内置的`java.security.MessageDigest`类。这个过程涉及到几个关键步骤,包括创建`MessageDigest`实例、更新输入数据和获取哈希值。 首先,我们需要导入必要的Java库: ```...
### DES加密算法JAVA代码知识点详解 #### 一、概述 数据加密标准(Data Encryption Standard,简称DES)是一种广泛使用的对称密钥加密技术。在Java中实现DES加密解密功能通常涉及以下几个关键类:`javax.crypto....
在Java中实现维吉尼亚加密算法,我们需要理解以下几个核心概念: 1. **密钥**:维吉尼亚密码的关键在于其密钥,这是一个由字母组成的字符串,决定了加密和解密过程中使用的偏移量。密钥的长度决定了密码表的循环...
1. 对称加密算法主要包含以下几种: - DES(Data Encryption Standard):是一种使用56位密钥的对称密钥加密算法,因其密钥长度较短,在现代计算能力面前已不够安全,但它奠定了后续加密技术的基础。 - 3DES...
Java的主要特点和优势包括以下几个方面: 跨平台性(Write Once, Run Anywhere): Java的代码可以在不同的平台上运行,只需编写一次代码,就可以在任何支持Java的设备上执行。这得益于Java虚拟机(JVM),它充当了...
本篇将详细介绍几种常见的加密算法及其在Java中的应用,包括DES、RSA以及非对称加密。 1. **DES(Data Encryption Standard)**:DES是一种对称加密算法,它使用56位的密钥对64位的数据块进行加密和解密。在Java中...
本文将探讨四种常见的Java加密算法,包括对称加密、非对称加密、哈希算法以及消息认证码(MAC)。首先,我们来了解一下Base64编码,它并非加密算法,而是一种编码方式,常用于在网络上传输8Bit字节数据。 1. **Base...