zoukankan      html  css  js  c++  java
  • 几种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;   /** *//**
      * RSAEncrypt
      *
      * @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;
      }
      }
  • 相关阅读:
    天梯赛5-12 愿天下有情人都是失散多年的兄妹 【dfs】
    poj2718 Smallest Difference【贪心】
    HDU problem 5635 LCP Array【思维】
    codeforces 782C Andryusha and Colored Balloons【构造】
    HDU 4278 Faulty Odometer【进制转换】
    codeforces B. The Meeting Place Cannot Be Changed【二分】
    POJ 3264 Balanced Lineup 【线段树】
    HDU 1850
    CodeForces-714C
    HDU Problem 1247 Hat's Words 【字典树】
  • 原文地址:https://www.cnblogs.com/mycodelife/p/1441624.html
Copyright © 2011-2022 走看看