Java暗号化アルゴリズムMD5暗号化とハッシュハッシュ付きシークレットキー暗号化アルゴリズムソースコード
私は最近、暗号化アルゴリズムの知識を学び、MD5暗号化を使用しました。 Baiduには多くのオンライン情報がありますが、それはあまり詳細ではありません。ここでは、MD5暗号化とハッシュハッシュを使用して暗号化アルゴリズムをシークレットキーで実装する方法を整理します。あなたは見ることができます。
実装コード:
パッケージcom.ompa.common.utils; Import java.security.messagegest; import java.security.nosuchalgorithmexceptection; import javax.crypto.mac; import javax.crypto.secretkey; Import javax.crypto.spec.secretkeyspec; zhangcd* @date 2016-4-29*/public class encryptutil {private static final string mac_name = "hmacsha1"; private static final string encoding = "utf-8"; private static final string key = "iloveyou";/ ****md5はコードを追加して32ビットmd5コード*/ public static string string2md5(string string string){mesagedigest md5 = null; try {md5 = mesagedigest.getInstance( "md5"); } catch(Exception e){System.out.println(e.toString()); e.printstacktrace();戻る ""; } char [] chararray = stochararray(); byte [] bytearray = new byte [chararray.length]; for(int i = 0; i <chararray.length; i ++)bytearray [i] =(byte)chararray [i]; byte [] md5bytes = md5.digest(bytearray); stringbuffer hexvalue = new StringBuffer(); for(int i = 0; i <md5bytes.length; i ++){int val =((int)md5bytes [i])&0xff; if(val <16)hexvalue.append( "0"); hexvalue.append(integer.tohexstring(val)); } return hexvalue.toString(); } / ****md5暗号化は32ビットmd5コードを生成します* / public static string stringmd5(string instr){return string2md5(string2md5(string)); }/ ***暗号化と復号化アルゴリズム*/ public static string convertmd5(string string instr){char [] a = stochararray(); for(int i = 0; i <a.length; i ++){a [i] =(char)(a [i] ^ 't'); }文字列s = new String(a); s; } / ** * hmac-sha1 * @param encrypttext * @param encryptkey * @return * @throws例外 * / public static string hmacsha1encrypt(string encrypttext、string encryptkey)throws {byte [] byte [] data = encryptkey.getbytes(encoding); SecretKey SecretKey = new SecretKeyspec(data、mac_name); Mac Mac = mac.getinstance(mac_name); mac.init(secretkey); byte [] text = encrypttext.getBytes(encoding); byte [] str = mac.dofinal(text); // hex stringstringbuffer hexstring = new Stringbuffer(); //バイト配列を16進数に変換する(int i = 0; i ++){string shahex = integer.tohexString(str [i]&0xff); if(shahex.length()<2){hexstring.append(0);} hexstring.append(shahex);} return hexstring.tostring();} public static string convertsha1(string instring){try {return {return hmacsha1encrypt(instr、key) blocke.printstacktrace(); return "";}} //メイン関数をテストしますpublic static void main(string args [])throws exception {// secretキー暗号弦tt = convertsha1( "123456"); system.out.println(tt); // md5 encptring string s = new string "); system.out.println( "origin:" + s); System.out.println( "md5後:" + string2md5(s)); System.out.println( "md5の後:" + stringmd5(s));}}読んでくれてありがとう、私はそれがあなたを助けることができることを願っています。このサイトへのご支援ありがとうございます!