Sha1
paket com.stone.security; impor java.io.bytearrayInputStream; impor java.io.file; impor java.io.fileInputStream; impor java.io.fileoutputStream; impor java.security.digestinputStream; impor java.security.digestoutputStream; impor java.security.messagedigest; impor java.util.arrays; impor javax.crypto.mac; impor javax.crypto.secretkey; impor javax.crypto.secretkeyfactory; impor javax.crypto.spec.pbekeyspec; kelas publik sha {public static void main (string [] args) melempar Exception {encodeByMac ("China op ... &*() ... & 802134 ..."); EncodeBysha ("China op ... &*() ... & 802134 ..."); shafile (); } / ** * Ringkasan Pesan Menggunakan Algoritma Mac * @param Data * @throws Exception * / public static void encodeByMac (string data) melempar Exception {// keygenerator keygen = keygenerator.getInstance ("hmacsha1"); // Secretkey Key = keygen.generateKey (); // Kunci ini dihasilkan setiap kali berbeda, pbekeyspec keyspec = pbekeyspec baru ("acakKey^(^&*^%$". TOCHARArray ()); SecretKeyFactory keyfactory = SecretkeyFactory.getInstance ("pbewithmd5 dan"); secretkeyfactory.ygenystance ("pbewithmd5anddes"); Secretkeyy keyfactory. Algoritma "Code Otentikasi" (Mac). Fungsi Hash Cryptographic (seperti MD5 atau SHA-1) */ Mac Mac = Mac.getInstance ("HMACSHA1"); Mac.getInstance ("hmacsha512"); mac.init (kunci); byte [] dest = mac.dofinal (data.getbytes ()); System.out.println (Dest.Length); System.out.println ("Ringkasan Mac:" + arrays.tostring (DEST)); } / *** Enkripsi SHA1 menggunakan pesan pencernaan pesan untuk menangani* @throws Exception* / public static string encodeBySha (string str) melempar pengecualian {messageDigest sha1; sha1 = messageSmentIgest.getInstance ("sha1"); // Tiga berikut tidak tersedia // sha1 = MessageDigest.getInstance ("sha256"); // sha1 = messageSment.getInstance ("sha384"); // sha1 = messageScetedigest.getInstance ("sha512"); sha1.update (str.getbytes ()); // perbarui ringkasan byte pertama [] digest = sha1.digest (); // Perhitungan hash diselesaikan dengan melakukan operasi akhir seperti padding. Setelah metode ini dipanggil, ringkasan diatur ulang. / * * Gunakan array byte yang ditentukan untuk membuat pembaruan akhir dari ringkasan dan menyelesaikan perhitungan ringkasan. * Yaitu, metode ini pertama -tama memanggil pembaruan (input), * meneruskan array input ke metode pembaruan, dan kemudian memanggil digest (). */ // byte [] digest = sha1.digest (str.getbytes ()); String hex = tohex (digest); System.out.println ("Ringkasan SHA1:" + Hex); return hex; } / *** Ringkasan Data File* @Throws Exception* / public static void shafile () melempar Exception {MessageDigest MessageDigest = MessageDigest.getInstance ("sha1"); DigestOutputStream dos = new DigestOutputStream (FileOutputStream baru (file baru ("ABC.TXT")), MessageDigest); dos.write ("orang Cina ... & ()) f*(214) admin*". getBytes ()); dos.close (); byte [] Digest = MessageDigest.gigest (); System.out.println ("Tulis file menggunakan stream, ringkasan file adalah:" + tohex (digest)); DigestInputStream dis = new DigestInputStream (FileInputStream baru (file baru ("ABC.TXT")), MessageDigest); byte [] buf = byte baru [100]; int len; while ((len = dis.read (buf))! = -1) {System.out.println ("Data yang dibaca adalah:" + string baru (buf, 0, len)); } dis.close (); byte [] Digest2 = MessageDigest.digest (); // Ketika aliran dibaca, file selesai, dan pencernaan sama dengan ketika ditulis system.out.println ("Gunakan aliran untuk membaca file, pencernaan file adalah:" + tohex (digest2)); } / ** * sha1 digest adalah untuk hexadecimal * @param digest * @return * / private static string tohex (byte [] digest) {stringBuilder sb = stringBuilder baru (); int len = Digest.length; String out = null; untuk (int i = 0; i <len; i ++) {// out = integer.tohexstring (0xff & digest [i]+0xAbcdef); // Tambahkan garam keluar = integer.tohexstring (0xff & Digest [i]); // metode asli jika (out.length () == 1) {sb.append ("0"); // Jika Anda menambahkan 0 di depan 1 bit} sb.append (out); } return sb.toString (); }}
Md5
MD5 (Algoritma Digest Message 5), edisi kelima dari Algoritma Digest Message. Pencernaan pesan adalah algoritma: tidak peduli berapa lama data asli, hasil dari pesan pencernaan adalah panjang yang tetap; Ini adalah algoritma yang tidak dapat diubah. Perubahan bit apa pun dari data asli akan menyebabkan perbedaan besar dalam hasil pencernaan pesan, dan probabilitas menghitung data asli berdasarkan hasilnya sangat rendah.
Pencernaan pesan dapat dianggap sebagai sidik jari dari data asli. Sidik jari yang berbeda akan membuat data asli berbeda.
paket com.stone.security; impor java.io.bytearrayInputStream; impor java.io.file; impor java.io.fileInputStream; impor java.io.fileoutputStream; impor java.security.digestinputStream; impor java.security.digestoutputStream; impor java.security.messagedigest; impor java.util.arrays; impor javax.crypto.mac; impor javax.crypto.secretkey; impor javax.crypto.secretkeyfactory; impor javax.crypto.spec.pbekeyspec; kelas publik md5 {public static void main (string [] args) melempar Exception {encodeByMac ("China op ... &*() ... & 802134 ..."); EncodeByMD5 ("China op ... &*() ... & 802134 ..."); md5file (); } / ** * Ringkasan Pesan Menggunakan Algoritma Mac * @param Data * @throws Exception * / public static void encodeByMac (string data) melempar Exception {// keygenerator keygen = keygenerator.getInstance ("hmacmd5"); // Secretkey Key = keygen.generateKey (); // Kunci ini dihasilkan setiap kali berbeda, pbekeyspec keyspec = pbekeyspec baru ("acakKey^(^&*^%$". TOCHARArray ()); SecretKeyFactory keyfactory = SecretkeyFactory.getInstance ("pbewithmd5 dan"); secretkeyfactory.ygenystance ("pbewithmd5anddes"); Secretkeyy keyfactory. Algoritma Kode Otentikasi "Pesan (Mac). Fungsi hash kriptografi (seperti MD5 atau SHA-1) */ Mac Mac = Mac.getInstance ("HMACMD5"); } / *** MD5 Enkripsi menggunakan pesan pencernaan pesan untuk menangani* @throws Exception* / public static string encodeByMd5 (string str) melempar pengecualian {messageSmestGest md5; md5 = messageSmest.getInstance ("md5"); md5.update (str.getbytes ()); // perbarui ringkasan byte pertama [] digest = md5.gigest (); // Perhitungan hash diselesaikan dengan melakukan operasi akhir seperti padding. Setelah metode ini dipanggil, ringkasan diatur ulang. / * * Gunakan array byte yang ditentukan untuk membuat pembaruan akhir dari ringkasan dan menyelesaikan perhitungan ringkasan. * Yaitu, metode ini pertama -tama memanggil pembaruan (input), * meneruskan array input ke metode pembaruan, dan kemudian memanggil digest (). */ // byte [] digest = md5.gigest (str.getbytes ()); String hex = tohex (digest); System.out.println ("Ringkasan MD5:" + Hex); return hex; } / *** Ringkasan Data File* @Throws Exception* / public static void md5File () melempar Exception {MessageSpetest MessageDigest = MessageDigest.getInstance ("md5"); DigestOutputStream dos = new DigestOutputStream (FileOutputStream baru (file baru ("ABC.TXT")), MessageDigest); dos.write ("orang Cina ... & ()) f*(214) admin*". getBytes ()); dos.close (); byte [] Digest = MessageDigest.gigest (); System.out.println ("Tulis file menggunakan stream, ringkasan file adalah:" + tohex (digest)); DigestInputStream dis = new DigestInputStream (FileInputStream baru (file baru ("ABC.TXT")), MessageDigest); byte [] buf = byte baru [100]; int len; while ((len = dis.read (buf))! = -1) {System.out.println ("Data yang dibaca adalah:" + string baru (buf, 0, len)); } dis.close (); byte [] Digest2 = MessageDigest.digest (); // Ketika aliran dibaca, file selesai, dan pencernaan sama dengan ketika ditulis system.out.println ("Gunakan aliran untuk membaca file, pencernaan file adalah:" + tohex (digest2)); } / ** * MD5 Digest adalah untuk hexadecimal * @param digest * @return * / private static string tohex (byte [] digest) {stringBuilder sb = stringBuilder baru (); int len = Digest.length; String out = null; untuk (int i = 0; i <len; i ++) {// out = integer.tohexstring (0xff & digest [i]+0xAbcdef); // Tambahkan garam keluar = integer.tohexstring (0xff & Digest [i]); // metode asli jika (out.length () == 1) {sb.append ("0"); // Jika Anda menambahkan 0 di depan 1 bit} sb.append (out); } return sb.toString (); }}PS: Berikut adalah dua alat enkripsi MD5 lagi untuk Anda. Teman yang tertarik dapat merujuknya:
Alat Enkripsi Online MD5:
http://tools.vevb.com/password/createMd5password
Online MD5/Hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160 Alat Enkripsi:
http://tools.vevb.com/password/hash_md5_sha