oracle中的encrypt_des加密对应Java的加密方式

oracle中的encrypt_des加密对应Java的加密方式一、oracle中的加密函数encrypt_des create or replace function encrypt_des(vi_data varchar2) return varchar2 …

oracle中的encrypt_des加密对应Java的加密方式

将18693157906加密后的密文是 FAD42A3BB2A4B9A5B36847714A56FE65

oracle中的encrypt_des加密对应Java的加密方式

二、java中对应的加密、解密方法

代码100分

代码100分public class Utils {

#密钥	
private static String key = "test#5&124*!de";
	
 /**
  *      加密
  * @param inStr
  * @return
  */
   public static String ENCRYPT_DES(String inStr)  { 
	   DESKeySpec desKey;
	   SecretKey securekey;
	   Cipher cipher; 
	  try {
		
		desKey = new DESKeySpec(key.getBytes());
		securekey = SecretKeyFactory.getInstance("DES").generateSecret(desKey);
	    cipher = Cipher.getInstance("DES/CBC/NoPadding");
	    cipher.init(Cipher.ENCRYPT_MODE, securekey, new IvParameterSpec(new byte[8]));
        byte[] inBytes = new byte[((int) (inStr.length() / 8) + 1) * 8];
        for (int i = 0; i < inStr.length(); i++) {
        inBytes[i] = inStr.getBytes()[i];
        }
       byte[] enBytes = cipher.doFinal(inBytes);
       String hexStr = DatatypeConverter.printHexBinary(enBytes);
       return hexStr;
        
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}

	return null;
	   
   }
	
   /**
    *    解密
    * @param encryptStr
    * @return
    */
   public static  String DECRYPT_DES(String encryptStr)  { 
	   DESKeySpec desKey;
	   SecretKey securekey;
	   Cipher cipher; 
	 try {
		 desKey = new DESKeySpec(key.getBytes());
         securekey = SecretKeyFactory.getInstance("DES").generateSecret(desKey);
	     cipher = Cipher.getInstance("DES/CBC/NoPadding");
	     cipher.init(Cipher.DECRYPT_MODE, securekey, new IvParameterSpec(new byte[8]));
		 byte[] decryptBytes = cipher.doFinal(Hex.decodeHex(encryptStr.toCharArray()));
		 return new String(decryptBytes).trim();
		
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}

	return null;
	   
   }
   
   public static void main(String[] args) {
	   System.out.println("加密:"+ENCRYPT_DES("18693157906"));
	   System.out.println("解密:"+DECRYPT_DES("FAD42A3BB2A4B9A5B36847714A56FE65"));
}
	
 
}
三、运行代码得到结果

oracle中的encrypt_des加密对应Java的加密方式

可以看到加密后的密文是FAD42A3BB2A4B9A5B36847714A56FE65

解密后的明文是18693157906

跟数据库加密一致

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8295.html

(0)
上一篇 2023-03-04
下一篇 2023-03-04

相关推荐

  • Python数组分割实现方法

    Python数组分割实现方法numpy.split()方法是numpy的一个方法,可以将一个数组分成多个子数组,其用法如下:

    2024-03-30
    75
  • Kylin on Parquet 介绍和快速上手

    Kylin on Parquet 介绍和快速上手Apache Kylin on Apache HBase 方案经过长时间的发展已经比较成熟,但是存在着一定的局限性。因此,Kyligence 推出了 Kylin on Parquet 方案。本文中,K

    2023-02-22
    147
  • 制表符是什么

    制表符是什么制表符是计算机中一种特殊的字符,其形状和空格类似,但是占据的宽度不同,可以被用来在文本中对齐不同的元素。

    2024-09-13
    27
  • 技术分享 | MySQL 子查询优化

    技术分享 | MySQL 子查询优化作者:胡呈清 爱可生 DBA 团队成员,擅长故障分析、性能优化,个人博客:https://www.jianshu.com/u/a95ec11f67a8,欢迎讨论。 本文来源:原创投稿 *爱可生开源社…

    2023-03-16
    152
  • 一周信创舆情观察(7.13~7.19)「终于解决」

    一周信创舆情观察(7.13~7.19)「终于解决」一、一周舆情要点 中国移动大规模采集国产数据库,自主可控数据库有望迎来全方位增长。中国移动此次预计采购1500套数据库产品及服务,金额在6000万元左右,中标候选人包括南大通用、人大金仓、阿里云、万…

    2023-03-25
    150
  • Python安装xlrd教程

    Python安装xlrd教程a href=”https://beian.miit.gov.cn/”苏ICP备2023018380号-1/a Copyright www.python100.com .Some Rights Reserved.

    2024-05-10
    68
  • Python中的Numpy

    Python中的NumpyNumpy是Python中用于科学计算的一个重要的库。它提供了一个快速、高效的多维数组对象,以及用于操作这些多维数组的工具。

    2024-08-06
    28
  • Python工程师的代码回退实践

    Python工程师的代码回退实践在软件开发过程中,代码管理是一个非常重要的任务,它确保代码的质量和可维护性。然而,开发过程中常会遇到意想不到的问题,比如某次提交的代码出现了错误或者导致了系统崩溃。这时我们就需要回退到之前的版本,从而修复错误。本文将介绍如何在Python项目中进行代码回退实践,以帮助Python工程师从这些问题中快速恢复并修复错误。

    2024-07-28
    35

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注