程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> Java中常用的加密算法應用MD5,SHA,RSA

Java中常用的加密算法應用MD5,SHA,RSA

編輯:JAVA編程入門知識

  1. MD5加密,常用於加密用戶名密碼,當用戶驗證時。

protected byte[] encrypt(byte[] obj) ...{
      try ...{
          MessageDigest md5 = MessageDigest.getInstance("MD5");
              md5.update(obj);
          return md5.digest();
      } catch (NoSUChAlgorithmException e) ...{
          e.printStackTrace();
      }
  }

  2. SHA加密,與MD5相似的用法,只是兩者的算法不同。

protected byte[] encrypt(byte[] obj) ...{
      try ...{
          MessageDigest sha = MessageDigest.getInstance("SHA");
              sha.update(obj);
          return sha.digest();
      } catch (NoSuchAlgorithmException e) ...{
          e.printStackTrace();
      }
  }

  3. RSA加密,RAS加密答應解密。常用於文本內容的加密。

import Java.security.KeyPair;
  import java.security.KeyPairGenerator;
  import java.security.interfaces.RSAPrivateKey;
  import java.security.interfaces.RSAPublicKey;
  import javax.crypto.Cipher;
  /** *//**
   * <b>RSAEncrypt</b>
   * <p>
   * @author maqujun
   * @see
   */
  public class RSAEncrypt ...{
      /** *//**
   * Main method for RSAEncrypt.
       * @param args
       */
      public static void main(String[] args) ...{
          try ...{
              RSAEncrypt encrypt = new RSAEncrypt();
             
              String encryptText = "encryptText";
              KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");
              keyPairGen.initialize(1024);
              KeyPair keyPair = keyPairGen.generateKeyPair();
              // Generate keys
              RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();
              RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();
  
               byte[] e = encrypt.encrypt(publicKey, encryptText.getBytes());
              byte[] de = encrypt.decrypt(privateKey,e);
              System.out.println(encrypt.bytesToString(e));
              System.out.println(encrypt.bytesToString(de));
          } catch (Exception e) ...{
              e.printStackTrace();
          }
      }
  /** *//**
       * Change byte array to String.
       * @return byte[]
       */
      protected String bytesToString(byte[] encrytpByte) ...{
          String result = "";
          for (Byte bytes : encrytpByte) ...{
              result += (char) bytes.intValue();
          }
          return result;
      }
  /** *//**
       * Encrypt String.
       * @return byte[]
       */
      protected byte[] encrypt(RSAPublicKey publicKey, byte[] obj)  ...{
          if (publicKey != null) ...{
              try ...{
                  Cipher cipher = Cipher.getInstance("RSA");
                  cipher.init(Cipher.ENCRYPT_MODE, publicKey);
                  return cipher.doFinal(obj);
              } catch (Exception e) ...{
                  e.printStackTrace();
              }
          }
          return null;
      }
      /** *//**
       * Basic decrypt method
       * @return byte[]
       */
      protected byte[] decrypt(RSAPrivateKey privateKey, byte[] obj) ...{
          if (privateKey != null) ...{
                  try ...{
                      Cipher cipher = Cipher.getInstance("RSA");
  
                       cipher.init(Cipher.DECRYPT_MODE, privateKey);
                      return cipher.doFinal(obj);
                  } catch (Exception e) ...{
                      e.printStackTrace();
                  }
              }
     
          return null;
      }
  }


 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved