Java中常用的加密算法应用MD5,SHA,RSA _Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 1840 | 回复: 0   主题: Java中常用的加密算法应用MD5,SHA,RSA         下一篇 
shunli
注册用户
等级:新兵
经验:36
发帖:59
精华:0
注册:2011-9-23
状态:离线
发送短消息息给shunli 加好友    发送短消息息给shunli 发消息
发表于: IP:您无权察看 2016-1-8 16:09:59 | [全部帖] [楼主帖] 楼主

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;
  }
}





--转自



赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论