`

加密解密类之二

    博客分类:
  • java
 
阅读更多
/**
		 * 3DES 解密(byte[]).
		 */
		private static byte[] desDecrypt(SecretKey key, byte[] crypt){
			try {
				Cipher cipher = Cipher.getInstance("DESede");
				cipher.init(Cipher.DECRYPT_MODE, key);
				return cipher.doFinal(crypt);
			} catch (Exception e) {
			  e.printStackTrace();
			}
			return null;
		}
		
	   
	    /**
		 * 生成3DES密钥.
		 * @param key_byte seed key
		 * @return SecretKey Generated DES key
		 */
		private static SecretKey genDESKey(byte[] key_byte) {
			return new SecretKeySpec(key_byte, "DESede");
		}
		 /**
		  * 拼凑或者截取制定长度的字符串
		  * @param key
		  * @param max
		  * @return
		  */ 
		private static String getLimStr(String key,int max) {
			if(null==key){
				key = "";
			}
			int keyLength=key.getBytes().length;
			if(keyLength==max){
				return key;
			}
			//填充
			StringBuffer keyB = new StringBuffer(key);
			if(keyLength<max){
				for(int i=0;i<max-keyLength;i++){
					keyB.append("0");
				}
			}
			key = keyB.toString();
			String str = "";
			int i = 0;
			while (i <key.length() && (str+key.charAt(i)).getBytes().length<=max) {
				str += key.charAt(i);
				i++;
			}
			return str;
		}
		

	    /**
		 * byte数组转16进制字符串
		 * @param b
		 * @return
		 */
		private static  String byteArrayToHexString(byte b[]) {
			StringBuffer result = new StringBuffer();
			for (int i = 0; i < b.length; i++)
				result.append( byteToHexString(b[i]));
			return result.toString();
		}

		private  static  String byteToHexString(byte b) {
			int n = b;
			if (n < 0)
				n = 256 + n;
			int d1 = n / 16;
			int d2 = n % 16;
			return hexCode[d1] + hexCode[d2];
		}

	    static public String hexCode[] = { "0", "1", "2", "3", "4", "5", "6", "7", "8",
				"9", "A", "B", "C", "D", "E", "F" };
	    
	    private static byte[] hexStringToBytes(String src){ 
	        byte[] ret = new byte[src.length()/2];
	        byte[] tmp = src.getBytes();
	        for(int i=0; i<src.length()/2; i++){
	          ret[i] = uniteBytes(tmp[i*2], tmp[i*2+1]);
	        }
	        return ret;
	     }
	    
	   /* 将两个ASCII字符合成一个字节;
	    * 如:"EF"--> 0xEF
	    * @param src0 byte
	    * @param src1 byte
	    * @return byte
	    */
	  private static byte uniteBytes(byte src0, byte src1) {
	     byte _b0 = Byte.decode("0x" + new String(new byte[]{src0})).byteValue();
	     _b0 = (byte)(_b0 << 4);
	     byte _b1 = Byte.decode("0x" + new String(new byte[]{src1})).byteValue();
	     byte ret = (byte)(_b0 ^ _b1);
	     return ret;
	  }
	  
	  public static void main(String[] args) {
		
		  System.out.println(encrypt("wmba"));
		  System.out.println(decrypt("41666AFABEC36AC9"));
		  
	  }


加密实例:
result = SecurityUtil.encrypt(((EsbAdminUserInfo)getForm()).getPassWord());
分享到:
评论

相关推荐

    C# .net MD5加密解密工具及加密解密类

    C# .net MD5加密解密工具及加密解密类。使用方便,可直接下载加密解密代码在项目中使用。

    C# 常用加密解密类

    本文将详细介绍C#编程语言中常用的三种加密解密算法:DES、RSA和TripleDES。 首先,我们来了解一下基本的加密概念。加密是将明文数据转换为看似随机的密文,以防止未经授权的访问;解密则是将密文恢复为原始明文的...

    C#加密解密DeEncryptHelper.zip

    MD5 单向加密 SHA1 单向加密 DES 双向,可解密 加密字符串 ...RSA加密解密及RSA签名和验证 RSA 的密钥产生 产生私钥 和公钥 RSA 方式加密 RSA的解密函数 获取Hash描述表 RSA签名 RSA 签名验证

    加密解密类(C#)

    用于加密解密的操作类。

    PHP 加密解密处理类

    这里我们将讨论一些常见的加密库和函数,以及如何在实际项目中创建自定义加密解密类。 1. **基础加密函数**: - **md5()**:提供128位散列值,但不适用于加密,只适合做数据校验。 - **sha1()**:与md5类似,提供...

    Qt实现AES加密解密

    这个程序应当包含了上述知识点的具体应用,你可以通过阅读源代码、编译和运行来进一步理解和学习AES加密解密的实现细节。这个实战例程可以帮助开发者更好地掌握Qt环境下的加密解密操作,提高数据安全保护能力。

    Java Base64加密解密方法工具类

    Java Base64加密解密方法工具类

    android工具类:基于javaBase64的加密解密工具类

    本文将详细介绍一个基于Java Base64的Android加密解密工具类,该工具类支持公钥加密和私钥解密,具有高度的解耦性,方便集成到项目中。 一、Base64加密解密基础 Base64是一种编码方式,它将任意二进制数据转换为可...

    易飞用户加密解密

    二、易飞用户加密解密系统 “易飞用户加密解密”可能指的是易飞公司提供的一个针对用户数据进行加解密的服务或工具,如EFPASS.exe这个文件所示,它可能是一个执行程序,用于用户数据的安全管理。 三、加密算法 ...

    php实现的加密解密处理类.zip

    这个压缩包提供的“加密解密处理类”可能是为了简化这个过程,提供了一种封装好的解决方案。它可能包含以下功能: 1. 支持多种加密算法:类库可能会提供对多种加密算法的支持,允许开发者根据需求选择合适的算法。 ...

    URL参数加密解密,URL参数加密解密

    URL参数加密解密;使用简便;URL参数加密解密;使用简便;URL参数加密解密;使用简便;URL参数加密解密;使用简便;

    C# RSA加密解密

    **C# RSA加密解密详解** 在信息安全领域,加密技术是一种至关重要的手段,用于保护数据的隐私和安全性。RSA(Rivest-Shamir-Adleman)算法是一种非对称加密算法,广泛应用于网络通信、数据存储等领域。C#作为.NET...

    功能强大的php加密解密类

    自定义加密解密类通常是为了提供更方便的接口,或者实现特定的加密需求。此类可能包含各种加密方法,如使用预设密钥进行AES加密,或者实现自定义的加密算法。在给定的描述中,类的构造函数接收密钥,这意味着它可能...

    VB AES加密解密类

    ### VB AES加密解密类详解 #### 概述 标题为“VB AES加密解密类”的模块,旨在提供一种在Visual Basic(VB)环境中实现高级加密标准(AES)加密和解密功能的方法。AES是一种对称加密算法,广泛应用于数据保护、...

    c#加密解密加密解密加密解密加密解密加密解密

    c#加密解密加密解密加密解密加密解密加密解密c#加密解密加密解密加密解密加密解密加密解密

    Java实现的RSA加密解密算法示例

    知识点2:Java中RSA加密解密算法的实现 在Java中,可以使用Java Cryptography Architecture(JCA)来实现RSA加密解密算法。JCA提供了一个完整的加密解决方案,包括密钥对生成、加密和解密等功能。 知识点3:密钥对...

    加密解密文件 加密 解密

    文件的加密解密,一些流的操作,流的加密....DES;文件的加密解密,一些流的操作,流的加密....DES

    SpringBoot接口加密解密统一处理

    2. 创建一个工具类`NeedCrypto`,用于判断接口是否需要执行加密解密操作。 3. 使用`ControllerAdvice`进行全局拦截,根据`NeedCrypto`的判断结果进行解密请求参数和加密响应结果的操作。 这样的设计既保持了代码的...

    C语言实现DES加密解密算法

    DES加密解密算法的C语言实现 DES(Data Encryption Standard)是一种对称密钥 BLOCK 加密算法,使用 56 ...DES 加密解密算法的 C 语言实现需要理解字节与二进制转换、密钥处理、加密和解密操作以及基本操作等知识点。

    Base64加密解密工具类

    java开发使用base64进行加密解密,开发人员只需调用其中方法即可完成加密解密操作!

Global site tag (gtag.js) - Google Analytics