zoukankan      html  css  js  c++  java
  • java MD5 加密 及对应的 oracle数据库中的MD5加密实现

    ① JAVA MD5 加密:

     1 package com.test.util;
     2 
     3 import java.security.MessageDigest;
     4 import java.security.NoSuchAlgorithmException;
     5 
     6 import sun.misc.BASE64Encoder;
     7  
     8 public class CrytogramTool {
     9 
    10     /**
    11      * 使用指定算法加密指定字符串
    12      * @param message        待加密的字符串
    13      * @param algorithmName  加密算法
    14      * @return               加密后的字符串
    15      */
    16     public static String encryptStr(String message, String algorithmName){
    17         MessageDigest messageDigest = null;
    18         try {
    19             messageDigest = MessageDigest.getInstance(algorithmName);
    20         } catch (NoSuchAlgorithmException e) {
    21             e.printStackTrace();
    22         }
    23         messageDigest.reset();
    24         byte[] bytes = message.getBytes();
    25         byte[] out = messageDigest.digest(bytes);
    26         BASE64Encoder enc = new BASE64Encoder();
    27         return enc.encode(out);
    28     }
    29 }

    调用方法:CrytogramTool.encryptStr("待加密字串","MD5");

    ② ORACLE数据库端对应的实现:

       1. 先MD5加密

    CREATE OR REPLACE FUNCTION FUNC_ENCRYPT_MD5(PASSWD IN VARCHAR2) RETURN VARCHAR2 IS
      /****************************************************************
       NAME       :  FUNC_ENCRYPT_MD5
       PURPOSE    :  MD5加密,返回加密后的字符串
       PARAMETER  :  PASSWD   待加密字符串
       CREATED ON :  2014/04/21
       COMMENTS   :  
       AUTHOR     :  soryou
       ****************************************************************/
       RTNVAL VARCHAR2(32);
    BEGIN
       RTNVAL := UTL_RAW.CAST_TO_RAW(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => PASSWD));
       RETURN RTNVAL;
    END;

       2. 再BASE64

    V_STR:='';
    SELECT UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.BASE64_ENCODE(FUNC_ENCRYPT_MD5('待加密字串'))) INTO V_STR FROM  DUAL;

    最后,V_STR的值即为得到的加密后的字符串。

  • 相关阅读:
    安装node-gyp
    node版本切换
    electron-vue运行只出现项目目录不出现效果
    高级运维工程师的必备技术
    linux 下的shutdown指令
    数据库实体联系模型与关系模型
    数据库表设计1
    实体-关系模型
    Excel中怎么快速选中区域
    EXCEL中给包含某个字段的单元格所在行标注颜色
  • 原文地址:https://www.cnblogs.com/suliang/p/3679829.html
Copyright © 2011-2022 走看看