Java中创建对称密钥的代码
来源:互联网 发布:php异步发送邮件 编辑:程序博客网 时间:2024/05/19 03:17
1 加密
public static byte[] jiami() throws Exception
{
//密钥生成器
KeyGenerator key=KeyGenerator.getInstance("DESede");
/**初始化密钥生成器
* 该步骤一般指定密钥的长度。如果该步骤省略的话,
* 会根据算法自动使用默认的密钥长度。指定长度时,
* 若第一步密钥生成器使用的是“DES”算法,则密钥长度必须是56位;
* 若是“DESede”,则可以是112或168位,其中112位有效;若是“AES”,
* 可以是128, 192或256位;若是“Blowfish”,则可以是32至448之间可以被8整除的数;
* “HmacMD5”和“HmacSHA1”默认的密钥长度都是64个字节
*/
key.init(168);
//生成密钥
SecretKey secret=key.generateKey();
//生成一个密钥文件 miyao.bat 以后人家需要解密 你就提供他一个文件
FileOutputStream s=new FileOutputStream("c://miyao.bat");
ObjectOutputStream st=new ObjectOutputStream(s);
st.writeObject(secret);
//工厂模式获取Cipher实例 密码器
Cipher cp=Cipher.getInstance("DESede");
//初始化cipher ENCRYPT_MODE表示加密DECRYPT_MODE解密 后面一个参数是密钥
cp.init(Cipher.ENCRYPT_MODE, secret);
//定义一个明文
String pwd="liaomin999";
//获取字符串的utf-8字节码
byte[] by=pwd.getBytes("utf-8");
//对字节码机密 miby就是加密后的字节码
byte[] miby=cp.doFinal(by);
//获取密文字符串
return miby;
}
2解密
public static String jiemi(byte[] miwen) throws Exception
{
//通过提供的密钥文件 获取密钥对象 进行解密
FileInputStream s=new FileInputStream("c://miyao.bat");
ObjectInputStream st=new ObjectInputStream(s);
SecretKey secret=(SecretKey)st.readObject();
//工厂模式获取Cipher实例 密码器
Cipher cp=Cipher.getInstance("DESede");
//初始化cipher ENCRYPT_MODE表示加密DECRYPT_MODE解密 后面一个参数是密钥
cp.init(Cipher.DECRYPT_MODE, secret);
//对密文字节码进行解密 如果密码写入文件可以使用文件流读写成一个数组
byte[] miby=cp.doFinal(miwen);
//获取密文字符串
String minwen=new String(miby,"utf-8");
return minwen;
}
public static void main(String[] args) throws Exception {
byte[] miwen=jiami();
String minwen=jiemi(miwen);
System.out.println(minwen);
}
- Java中创建对称密钥的代码
- Java中创建对称密钥的步骤
- Java中创建对称密钥的步骤
- Java中创建口令密钥的代码
- Java中对称密钥、非对称密钥和数字签名的用法
- Java安全笔记(二)-创建对称密钥
- JAVA实现DES对称密钥的方法
- Java安全学习笔记(二)--创建对称密钥
- Java中RSA非对称密钥加解密使用示例
- Java中RSA非对称密钥加解密使用
- Java中RSA非对称密钥加解密使用示例
- Java中RSA非对称密钥加解密使用示例
- Java中RSA非对称密钥加解密使用示例
- Java中RSA非对称密钥加解密使用示例
- Java中RSA非对称密钥加解密使用示例
- ocx中对称密钥加密解密的简单实例
- 对称加密的对称密钥分发
- 对称密码学的密钥交换
- php __FILE__
- CSS样式和选择器
- 远程连接sql server 2000无法打开1433端口的解决办法
- Android蓝牙API之BluetoothAdapter类(1)
- EeePC 1005ha(1008ha)安装Ubuntu的完美方案
- Java中创建对称密钥的代码
- 加密解密教程之必备基础知识
- http 协议详解
- Android蓝牙API之BluetoothAdapter类(2)
- java排序算法
- 从计算机复试看中国教育——一个面试官的经历
- Android蓝牙API之BluetoothSocket类(1)
- Apache
- 第六章 PL/SQL与Oracle间交互