`
buerkai
  • 浏览: 170278 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

DES 3DES Blowfish对称加密

    博客分类:
  • Bug
 
阅读更多
package com.test.security;



import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.security.Key;
import java.security.SecureRandom;
import java.security.Security;

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class DESUtil {

static {
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
}

public static final String Algorithm_DES = "DES";

public static final String Algorithm_3DES = "DESede";

public static final String Algorithm_Blowfish = "Blowfish";

/***
* 创建key
*
* @param path
* @return
*/
public static Key createKey(String path, String type) {
Key key = null;
try {
KeyGenerator kg = KeyGenerator.getInstance(type);
kg.init(new SecureRandom());
key = kg.generateKey();
if (path != null) {
FileOutputStream fos = new FileOutputStream(path);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(key);
}
return key;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}

/**
* 加密
*
* @param key
* @param data
* @param type
* @return
*/
public static String encrypt(Key key, String data, String type) {
Cipher enCipher;
try {
enCipher = Cipher.getInstance(type);
enCipher.init(Cipher.ENCRYPT_MODE, key);
byte[] pasByte = enCipher.doFinal(data.getBytes("UTF-8"));
BASE64Encoder base64Encoder = new BASE64Encoder();
return base64Encoder.encode(pasByte);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}

/**
* 解密
*
* @param key
* @param data
* @param type
* @return
*/
public static String dencrypt(Key key, String data, String type) {
Cipher deCipher;
try {
deCipher = Cipher.getInstance(type);
deCipher.init(Cipher.DECRYPT_MODE, key);
BASE64Decoder base64Decoder = new BASE64Decoder();
byte[] pasByte = deCipher.doFinal(base64Decoder.decodeBuffer(data));
return new String(pasByte, "UTF-8");
} catch (Exception e) {
e.printStackTrace();
return null;
}
}

/***
* 创建key
*
* @param path
* @return
*/
public static Key createKey(String path) {
Key key = null;
try {
KeyGenerator kg = KeyGenerator.getInstance("DES");
kg.init(new SecureRandom());
key = kg.generateKey();
if (path != null) {
FileOutputStream fos = new FileOutputStream(path);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(key);
}
return key;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}

/***
* 加密
*
* @param key
* @param data
* @return
*/
public static String encrypt(Key key, String data) {
Cipher enCipher;
try {
enCipher = Cipher.getInstance("DES");
enCipher.init(Cipher.ENCRYPT_MODE, key);
byte[] pasByte = enCipher.doFinal(data.getBytes("UTF-8"));
BASE64Encoder base64Encoder = new BASE64Encoder();
return base64Encoder.encode(pasByte);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}

/***
* 解密
*
* @param key
* @param data
* @return
*/
public static String dencrypt(Key key, String data) {
Cipher deCipher;
try {
deCipher = Cipher.getInstance("DES");
deCipher.init(Cipher.DECRYPT_MODE, key);
BASE64Decoder base64Decoder = new BASE64Decoder();
byte[] pasByte = deCipher.doFinal(base64Decoder.decodeBuffer(data));
return new String(pasByte, "UTF-8");
} catch (Exception e) {
e.printStackTrace();
return null;
}
}

public static void main(String[] a) {
Key k = DESUtil.createKey(null);
String ab = "asdfasdf安科技时代将房间卡刷卡金东方卡卡的伤口就放假啊速度加快恢复更快回家ask将获得国际卡阿卡sdk金发科技";
String a1 = DESUtil.encrypt(k, ab);
System.out.println(a1);
String a2 = DESUtil.dencrypt(k, a1);
System.out.println(a2);
System.out.println();
Key k2=DESUtil.createKey(null, Algorithm_3DES);
String b1=DESUtil.encrypt(k2, ab, Algorithm_3DES);
System.out.println(b1);
String b2=DESUtil.dencrypt(k2, b1, Algorithm_3DES);
System.out.println(b2);
System.out.println();

Key k3=DESUtil.createKey(null, Algorithm_Blowfish);
String c1=DESUtil.encrypt(k3, ab, Algorithm_Blowfish);
System.out.println(c1);
String c2=DESUtil.dencrypt(k3, c1, Algorithm_Blowfish);
System.out.println(c2);
System.out.println();
}
}
分享到:
评论

相关推荐

    Delphi加密算法大全2DES_3DES_3DES3_AES_BASE64_BLOWFISH_CRC_DES_MD5_RSA_SHA

    本资料包涵盖了多个常见的加密算法,包括2DES、3DES、3DES3、AES、Base64、Blowfish、CRC、DES、MD5以及RSA和SHA系列。以下将对这些算法进行详细介绍。 1. **2DES(双密钥数据加密标准)**:基于DES(Data ...

    key_DES.rar_blowfish cipher

    理解对称加密算法的原理,熟悉常用的对称加密算法:DES,TripleDES,Blowfish 以DES加密算法为例,掌握分组加密算法加,解密过程的实现。

    基于Java的源码-Blowfish对称密钥加密算法类和实例.zip

    本压缩包文件“基于Java的源码-Blowfish对称密钥加密算法类和实例.zip”包含了一些实现Blowfish算法的Java源代码,以及可能的示例应用,对于学习和理解Java中的加密技术非常有帮助。 1. **Blowfish算法介绍** - **...

    Java中的Blowfish对称密钥加密算法类和实例.7z

    1. **快速性**:Blowfish相对于其他对称加密算法,如DES或3DES,其加密和解密速度更快。 2. **灵活性**:支持不同长度的密钥,从32位到448位,每增加一位,安全性提高一倍。 3. **安全性**:尽管Blowfish已存在多年...

    Delphi 加密解密 AES DES RC Blowfish等算法控件源程序 Cipher_Component(1.0.0.0).rar

    3. **RC(Rivest Cipher)**:RC 系列是一组非标准的对称加密算法,如 RC2、RC4、RC5 和 RC6。它们的设计原理各异,但都具有一定的安全性。RC4 是一种流密码,广泛用于网络传输,而其他 RC 算法则适用于块加密。在 ...

    java DES,DESede,Blowfish 加密 和 MD5 加密 方法操作源码

    try {//MD5非对称加密 Eryptogram etg = new Eryptogram(); System.out.println("对‘01234567’进行MD5加密后的结果:"+etg.encrypt("01234567")); } catch (Exception e) { // TODO: handle exception...

    适用于独立系统的AES、ARC2、Blowfish、CAST和DES3的性能评估1

    在本文中,研究人员对几种常见的对称加密算法进行了性能评估,包括AES(高级加密标准)、ARC2、Blowfish、CAST和DES3。这些算法在数据保护和安全传输领域扮演着重要角色,尤其是在独立系统中。以下是这些算法的详细...

    基于java的中的Blowfish对称密钥加密算法类和实例.zip

    Blowfish算法的核心特点是其可变密钥长度,可以从32位到448位,这使得它比固定密钥长度的DES和3DES更加灵活。它采用了64位的块大小,并通过一系列称为S盒(Substitution Box)和P盒(Permutation Box)的数据结构...

    加解密算法Blowfish在单片机上的应用

    尤其是在32位处理器诞生后,Blowfish的加密速度超过了传统的数据加密标准(DES)算法,这也是它受到广泛关注的原因之一。 在实际单片机应用中,8位单片机C8051F120被选为实现Blowfish算法的硬件平台。这款单片机...

    Blowfish算法(包含C#,java)

    Blowfish算法是一种著名的对称加密算法,由Bruce Schneier于1993年设计。它以其高效、快速和安全的特点,在加密领域被广泛应用。本篇将详细讲解Blowfish算法的基本原理、C#与Java实现的关键点,以及如何在两个环境中...

    hi 加密解密 AES DES RC Blowfish等算法控件源程序

    在这个主题中,我们将深入探讨几种常见的加密算法:AES(高级加密标准)、DES(数据加密标准)以及RC和Blowfish。这些算法在软件开发和网络安全中扮演着重要角色。 AES,全称为Advanced Encryption Standard,是...

    Cracker初级教程之blowfish算法破解借鉴.pdf

    Blowfish是一种对称加密算法,由著名密码学家Bruce Schneier在1993年首次提出。其设计初衷是为了替代日渐显得不够安全的DES算法。相较于DES,Blowfish具有更高的安全性、更快的加密解密速度,并且支持可变长度的密钥...

    Blowfish算法在无线网络中的优势1

    本研究主要关注了四种常见的对称密钥加密算法:AES(高级加密标准)、DES(数据加密标准)、3DES(三重DES)和Blowfish,并在Visual Basic环境下使用大文本数据(.doc文件)评估了它们在加密时间、解密时间和吞吐量...

    FlyUtilsEncrypt AES DES Blowfish CBC RSA ECC MD5 .zip

    本文将深入探讨标题中提及的几种加密算法:AES(高级加密标准)、DES(数据加密标准)、Blowfish、CBC(密文块链接)模式、RSA(公钥加密算法)、ECC(椭圆曲线密码学)以及MD5(消息摘要算法5)。这些技术在Delphi...

    几十种加密方法包括Blowfish Cast128.zip

    标题中的“几十种加密方法包括Blowfish Cast128.zip”揭示了这个压缩包包含的是关于加密技术的资源,特别是Blowfish和Cast128这两种加密算法。加密是信息安全领域的重要组成部分,用于保护数据的隐私和安全性。让...

    Java DES 对称加密源码实例.rar

    本实例解释如何利用DES私钥加密算法加解密,对称加密的例子,本例中定义的加密算法可以是DES,DESede,Blowfish等,选择DES算法,密钥长度必须为56位,用密钥加密明文(message),生成密文(cipherText),操作模式为加密...

    RSA,DES,ElGamal,DSA,MD5,BLOWFISH加密算法原理详解

    其他加密算法如DES(Data Encryption Standard)是一种对称加密算法,ElGamal是一种基于离散对数问题的公钥加密算法,DSA(Digital Signature Algorithm)主要用于数字签名,MD5(Message-Digest Algorithm 5)是一...

    vb Blowfish, DES Gost, Simple XOR, RC4,Skipjack,TEA,Twofish

    1. **Blowfish**: Blowfish是由Bruce Schneier在1993年设计的一种对称密钥加密算法。它以其快速的执行速度和良好的安全性著称。Blowfish使用可变长度的密钥,范围从32位到448位,这使得它在各种应用场景下都具有很高...

    DES_zyj.rar_DES加密_DES加密算法_Des加密解密_des_加密解密

    DES(Data Encryption Standard)是一种经典的对称加密算法,由IBM公司于1970...尽管DES在当今的网络安全环境中已不再适用,但它的设计理念和结构对于理解其他加密算法,如AES、Blowfish或RSA等,有着重要的参考价值。

    跨平台 AES MD5 ECC DES RSA 加密解密 支持 进度 支持多种编码.源码.FlyUtils_md5加密解密工具类

    DES(Data Encryption Standard)是经典的对称加密算法,它使用64位的数据块和56位的密钥进行加密。尽管DES现在被认为不够安全,因为它可以被现代计算机快速破解,但它在历史上对加密技术的发展产生了重大影响。现代...

Global site tag (gtag.js) - Google Analytics