JAva MD 5暗号化の実現


前に.netプロジェクトをjavaプラットフォームに移行する必要があります.兄はこれを聞くと、愚かで、.netをしたことがありません.いろいろな穴、いろいろな心がだるくて力がありません.ここでは表にしません.しかし.netとjavaの文法の差は多くなく、私の執着と合理的な手配によって、最終的にプロジェクトの移行に成功しました.この過程で,各種の復号アルゴリズムに触れたのも収穫であり,事後総括の原則に基づいて,このテーマの文章を特筆した.
MD 5は主にチェックに用いられ、この用途に似ているのはRSAである.特に金額や重要なパラメータの伝送に関しては、パラメータがブロックされて改ざんされないようにするため、要求前にパラメータの重要なパラメータの一部を一定の順序でMD 5暗号化し、暗号化後の署名も一括してサービス側に伝送する必要があり、サービス側はこれらの重要なパラメータを以前に約束した順序でMD 5暗号化し、この暗号化された暗号文と伝送された署名をequals判定し,等しいとパラメータは改ざんされず,等しくなければパラメータが改ざんされたことを示す.くだらないことは言わないで、コードを差し上げます.
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Util {

	/**
	 * MD5  
	 * @param source	    
	 * @return	      
	 * @throws NoSuchAlgorithmException
	 * @throws UnsupportedEncodingException
	 */
	public static String encode(String source) throws NoSuchAlgorithmException,
			UnsupportedEncodingException {
		//       
		MessageDigest md5 = MessageDigest.getInstance("MD5");
		//        
		byte[] bytes = md5.digest(source.getBytes("utf-8"));
		return bytesToHexString(bytes);
	}

	private static String bytesToHexString(byte[] bArray) {
		StringBuilder sb = new StringBuilder(bArray.length);
		String sTemp;
		for (int i = 0,j=bArray.length; i < j; i++) {
			sTemp = Integer.toHexString(0xFF & bArray[i]);
			if (sTemp.length() < 2) {
				sb.append(0);
			}
			sb.append(sTemp);
		}
		return sb.toString();
	}
}