Algoritma enkripsi umum pada dasarnya dibagi menjadi kategori -kategori ini: 1: algoritma hash linier, 2: algoritma enkripsi simetris, 3. Algoritma enkripsi asimetris (catatan)
Algoritma hash linier (algoritma tanda tangan): MD5, SHA1, HMAC
Misalnya, MD5: Algoritma Digest Message-Digest (Algoritma Informasi-Digest 5), digunakan untuk memastikan transmisi informasi yang lengkap dan konsisten.
Fitur:
1. Kompresibilitas: Panjang nilai MD5 yang dihitung ditetapkan untuk data apa pun.
2. Mudah dihitung: Mudah untuk menghitung nilai MD5 dari data asli.
3. Resistensi Modifikasi: Buat perubahan pada data asli, bahkan jika hanya 1 byte yang dimodifikasi, nilai MD5 yang dihasilkan sangat berbeda.
4. Anti-tabrakan yang kuat: Diketahui bahwa data asli dan nilai MD5-nya sangat sulit untuk menemukan data dengan nilai MD5 yang sama (mis., Data yang dipalsukan).
Fungsi MD5 adalah untuk memungkinkan informasi berkapasitas besar "dikompresi" menjadi format rahasia sebelum menandatangani kunci pribadi dengan perangkat lunak tanda tangan digital (yaitu, mengonversi string byte dengan panjang apa pun menjadi string heksadesimal dengan panjang tertentu)
Algoritma Enkripsi Simetris: AES, DES, 3DES
Misalnya, AES: (Standar Enkripsi Lanjutan) juga dikenal sebagai metode enkripsi Rijndael dalam kriptografi, yang merupakan standar enkripsi blok yang diadopsi oleh pemerintah federal AS. Standar ini digunakan untuk menggantikan DES asli, dan telah dianalisis oleh banyak pihak dan banyak digunakan di seluruh dunia.
Algoritma Enkripsi Asimetris: RSA, DSA, ECC
Misalnya, RSA: RSA Public Key Cryptography System. Sistem kriptografi kunci publik yang disebut adalah menggunakan kunci enkripsi dan kunci dekripsi yang berbeda. Ini adalah sistem kriptografi yang "memperoleh kunci dekripsi dari kunci enkripsi yang diketahui secara komputasi tidak layak."
Dalam sistem kriptografi kunci publik, kunci enkripsi (mis., Kunci publik) PK adalah informasi publik, sedangkan kunci dekripsi (mis., Kunci rahasia) SK perlu dirahasiakan. Algoritma enkripsi E dan algoritma dekripsi D juga publik. Meskipun kunci dekripsi SK ditentukan oleh PK kunci publik, SK tidak dapat dihitung berdasarkan PK.
Modul Crypto di NodeJS
Node menggunakan pustaka OpenSSL untuk mengimplementasikan teknologi enkripsi, karena OpenSSL sudah merupakan algoritma enkripsi yang banyak digunakan. Ini termasuk algoritma seperti MD5 atau SHA-1 yang dapat Anda gunakan dalam aplikasi Anda.
Kode berikut menggunakan Metode Implementasi Algoritma Modul Crypto
/*** * @Author chenjianxiang * @Date 2016-07-07 */var crypto = membutuhkan ('crypto'); var key = '12345670'; Exports.des = {algoritma: {ecb: 'des-ecb', cbc: 'des-cbc'}, {ECB: 'des-ecb', cbc: 'des-cbc'},} {ecb: 'des-ecb', cbc: 'des-cbc'}, {'des-cbc', {'des-cbc', {'des-cbc', 'desbc' {'des-cbc' {'des-cbc' {des-cbc '{des-cbc', desbc '{des-cbc', desbc '{des-cbc' {des-cbc '{des-cbc', desbc '{des-cbc', desbc ',' var IV = buffer baru (IV? IV: 0); var cipher = crypto.createCipheriv (this.algorithmm.ecb, key, iv); cipher.setautopadding (true) // default true var cipher = cipher.update (plaintext, 'utf8', 'base64'); cipher += cipher.final ('base64'); return cipher; }, decrypt: function (encrypt_text, iv) {var key = buffer baru (key); var IV = buffer baru (IV? IV: 0); var decipher = crypto.createdecipheriv (this.algorithmm.ecb, key, iv); decipher.setautopadding (true); var txt = decipher.update (encrypt_text, 'base64', 'utf8'); txt += decipher.final ('utf8'); mengembalikan txt; }};Menggunakan metode enkripsi dan dekripsi des
// Enkripsi var cryptutil = membutuhkan ("./ utils/crypt"); var str = "/upload/image/201602120012.jpg"; var encrypt_text = cryptutil.des.encrypt (str, 0); var decrypt_text = cryptutil.des.decrypt (encrypt_text, 0); console.log (encrypt_text); console.log (decrypt_text);Hasil output:
I+qwosxqvbq18kvmx3ainomhbs3nt+v64s
/upload/image/201602120012.jpg
Implementasi sederhana dari enkripsi node.js des di atas adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.