`
skmbw
  • 浏览: 4400 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

加密啊

阅读更多
package com.skmbw.util.cryption;

import java.security.InvalidKeyException;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.spec.InvalidKeySpecException;

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;

/**
* DES对称加密和解密方法
* @author yinlei
* date 2012-7-16 下午4:54:51
*/
public class DESUtils {
private static Key key;
private static String ENCRYPTION_KEY = "sKmBWVteFlFyiNLeI";

static {
try {
SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
random.setSeed(ENCRYPTION_KEY.getBytes());
KeyGenerator generator = KeyGenerator.getInstance("DES");
generator.init(random);//new SecureRandom(ENCRYPTION_KEY.getBytes()));
key = generator.generateKey();
generator = null;
//key = generateKey(ENCRYPTION_KEY);
} catch (Exception e) {
throw new RuntimeException(e);
}
}

/**
* 获得密钥
* @param secretKey 加密盐salt
* @return SecretKey密钥实例
* @throws NoSuchAlgorithmException
* @throws InvalidKeyException
* @throws InvalidKeySpecException
*/
protected static SecretKey generateKey(String secretKey) throws NoSuchAlgorithmException,InvalidKeyException,InvalidKeySpecException { 
     
    SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); 
    DESKeySpec keySpec = new DESKeySpec(secretKey.getBytes()); 
    keyFactory.generateSecret(keySpec); 
    return keyFactory.generateSecret(keySpec); 
}

/**
* 对字符串进行DES加密,并返回BASE64加密的字符创
* @param original 源字符
* @return 加密后的字符
* @author yinlei
* date 2012-7-16 下午4:55:30
*/
public static String getEncryptString(String original) {
try {
byte[] strBytes = original.getBytes();
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] encryptStrByte = cipher.doFinal(strBytes);
return EncodeUtils.base64Encode(encryptStrByte);
} catch (Exception e) {
throw new RuntimeException(e);
}
}

/**
* 对DES加密和BASE64加密后的字符解密
* @param encryptStr 加密过的字符
* @return 解密后的原始字符
* @author yinlei
* date 2012-7-16 下午4:56:45
*/
public static String getDecryptString(String encryptStr) {
try {
byte[] strBytes = EncodeUtils.base64Decode(encryptStr);
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] decryptStrByte = cipher.doFinal(strBytes);
return new String(decryptStrByte, "UTF-8");
} catch (Exception e) {
throw new RuntimeException(e);
}
}

public static void main(String[] args) {
String str = "root";
String pass = "0558yinlei3416763";
String enstr = getEncryptString(str);
String enpass = getEncryptString(pass);
System.out.println(enstr);
System.out.println(enpass);
System.out.println(getDecryptString(enstr));
System.out.println(getDecryptString(enpass));
}
}
分享到:
评论

相关推荐

    Android加密之全盘加密详解

    其中,加密又分全盘加密(Android 4.4 引入)和文件级加密(Android 7.0 引入),本文将论述加密中的全盘加密的基本知识。全盘加密在 Android 4.4 中引入,在 Android 5.0 中做了比较大的更新。 本文部分片段摘自 ...

    企业级程序苏林加密系统 php加密的程序源码 sg11加密 xend加密 goto加密等

    苏林加密系统是一款专门为php加密的程序,支持sg11加密、xend加密、goto加密、Leave加密、enphp加密、NoName加密 可以发展用户,可以设置某加密价格,支持API接口加密,对接官方支付、码支付和易支付。 更新记录:...

    对称加密 非对称加密 需要的jar包

    在IT安全领域,加密技术是保护数据隐私和安全的关键手段。加密主要分为两种类型:对称加密和非对称加密。这两种加密方式各有其特点,适用于不同的场景。 **对称加密** 是一种历史悠久的加密方法,它依赖于一个相同...

    非对称加密和对称加密混合应用

    6.用对方的公钥对称密钥进行加密(加密密钥) 7.将密文(5)和加密密钥(6)一起发给对方 接收方: 1.用自己的私钥对加密密钥进行解密,得到对称密钥--也只有自己才能解密。 2.用对称密钥对密文进行解密,得到...

    C#加密解密DeEncryptHelper.zip

    单向加密 SHA1 单向加密 DES 双向,可解密 加密字符串 加密字符串 密钥为系统默认 加密文件 解密字符串 解密文件 128位MD5算法加密字符串 128位MD5算法加密Byte数组 32位MD5加密 Base64加密 Base64解密 DES加密/解密...

    基于Java实现的同态加密算法的实现

    同态加密是一种高级的加密技术,它允许对加密数据进行计算,而无需先解密。在同态加密下,操作的结果仍然是加密的,但与原始未加密数据进行相同的操作会得到相同的结果。这一特性使得同态加密在数据隐私保护、云计算...

    POST提交数据加密

    在这个场景中,我们关注的是如何加密POST请求中的数据,以及如何通过工具如HttpWatch来查看这些加密数据。下面我们将深入探讨POST提交数据加密的原理、方法以及HttpWatch工具的使用。 首先,POST方法是HTTP协议中...

    代理重加密代码

    代理重加密(Proxy Re-Encryption)是一种在公钥加密系统中的高级加密技术,它允许一个可信的第三方(代理)在不获取原始密文内容的情况下,将一个用户加密的信息重加密成另一个用户能解密的形式。这项技术在云计算...

    VB6加密解密算法,支持文件加密解密

    在VB6.0环境下开发的这个程序主要关注的是数据安全领域,特别是文件的加密与解密功能。VB(Visual Basic)是一种由微软公司推出的事件驱动编程语言,它以其易用性和丰富的控件库深受程序员喜爱。在这个特定的项目中...

    Codesys平台之功能块加密

    《Codesys平台功能块加密详解》 Codesys作为一款强大的工业自动化编程软件,提供了丰富的功能以确保项目的安全性,特别是对于程序和工艺块的加密管理。本文将深入探讨Codesys平台的功能块加密机制,包括设备加密、...

    最全的android图片加密

    本文将深入探讨如何实现Android图片的加密和解密,主要关注国际标准的AES(Advanced Encryption Standard)加密和混入字节加密这两种方法。 AES加密是目前广泛使用的对称加密算法,其安全性高,效率优良。在Android...

    Java文本文件加密与解密

    本次使用JAVA语言,采用3DES加密算法进行对文本文件的加密,通过二进制和十六进制的转换来实现,产生加密文件,再对加密文件进行解密。 关键词:DES加密算法、加密、解密。摘要 随着现代网络技术的飞速发展,人们...

    JS前台加密,java后台解密实现

    在网络安全领域,数据加密是保障信息安全的重要手段。在这个场景中,我们关注的是“JS前台加密,Java后台解密实现”,这通常涉及到用户敏感信息如用户名和密码的安全传输。以下是关于这个话题的详细解释: 首先,**...

    光盘加密大师 6.0

    《光盘加密大师 6.0:保护你的数据安全与隐私》 在信息化时代,数据安全和隐私保护显得尤为重要,特别是在存储介质广泛使用的背景下。光盘作为一种常见的存储工具,其内容的安全性同样不可忽视。"光盘加密大师 6.0...

    易飞用户加密解密

    《易飞用户加密解密详解》 在信息技术领域,数据安全是至关重要的议题,而用户加密解密技术正是保障信息安全的重要手段。本文将围绕“易飞用户加密解密”这一主题,深入探讨其原理、应用及操作流程,帮助读者更好地...

    plist文件加密方法

    在iOS开发中,为了保护应用程序的数据安全,对plist文件进行加密是常见的做法。Plist(Property List)文件是苹果系统中用于存储配置信息或轻量级数据的文件,通常以XML或二进制格式存在。当这些文件包含敏感信息时...

    3DES加密解密工具

    标题中的“3DES加密解密工具”指的是一个用于执行三重数据加密标准(3DES,Triple DES)的软件工具,这种工具通常用于保护敏感数据的安全,确保信息在传输过程中的机密性。3DES是DES(Data Encryption Standard,...

    苏林加密系统_php加密程序源码_企业级程序.zip

    苏林加密系统是一款专门为php加密的程序,支持sg11加密、xend加密、goto加密、Leave加密、enphp加密、NoName加密 可以发展用户,可以设置某加密价格,支持API接口加密,对接官方支付、码支付和易支付。 更新记录:...

    App.config加密解密 Xml文档加密解密

    加密过程涉及将配置节转换为ProtectedData类型,利用数据保护API(DPAPI)或RSA加密算法。解密则是在运行时自动完成的,只要应用程序具有正确的权限。 XML文档的加密同样重要,特别是当它们包含敏感信息时。XML加密...

    Springboot项目报文加密(采用AES、RSA动态加密策略)

    Springboot项目报文加密(采用AES、RSA动态加密策略) Springboot项目报文加密(采用AES、RSA动态加密策略) Springboot项目报文加密(采用AES、RSA动态加密策略) Springboot项目报文加密(采用AES、RSA动态加密...

Global site tag (gtag.js) - Google Analytics