อัลกอริทึมการเข้ารหัสทั่วไปจะถูกแบ่งออกเป็นหมวดหมู่เหล่านี้: 1: อัลกอริทึมแฮชเชิงเส้น, 2: อัลกอริทึมการเข้ารหัสแบบสมมาตร, 3. อัลกอริทึมการเข้ารหัสแบบไม่สมมาตร (บันทึก)
อัลกอริทึมแฮชเชิงเส้น (อัลกอริทึมลายเซ็น): MD5, SHA1, HMAC
ตัวอย่างเช่น MD5: อัลกอริทึมการระบุข้อความ 5 (อัลกอริทึมการย่อยข้อมูล 5) ใช้เพื่อให้แน่ใจว่าการส่งข้อมูลที่สมบูรณ์และสอดคล้องกัน
คุณสมบัติ:
1. การบีบอัด: ความยาว MD5 ที่คำนวณได้จะได้รับการแก้ไขสำหรับข้อมูลที่มีความยาวใด ๆ
2. ง่ายต่อการคำนวณ: ง่ายต่อการคำนวณค่า MD5 จากข้อมูลดั้งเดิม
3. ความต้านทานการปรับเปลี่ยน: ทำการเปลี่ยนแปลงใด ๆ กับข้อมูลดั้งเดิมแม้ว่าจะมีการแก้ไขเพียง 1 ไบต์ แต่ค่า MD5 ที่ได้นั้นแตกต่างกันมาก
4. การต่อต้านการชนที่แข็งแกร่ง: เป็นที่ทราบกันดีว่าข้อมูลต้นฉบับและค่า MD5 นั้นยากมากที่จะหาข้อมูลที่มีค่า MD5 เดียวกัน (เช่นข้อมูลปลอมแปลง)
ฟังก์ชั่นของ MD5 คือการอนุญาตให้ข้อมูลความจุขนาดใหญ่ "บีบอัด" เป็นรูปแบบที่เป็นความลับก่อนที่จะลงนามคีย์ส่วนตัวด้วยซอฟต์แวร์ลายเซ็นดิจิตอล (นั่นคือการแปลงสตริงไบต์ที่มีความยาวใด ๆ เป็นสตริงเลขฐานสิบหกของความยาวที่แน่นอน)
อัลกอริทึมการเข้ารหัสแบบสมมาตร: AES, DES, 3DES
ตัวอย่างเช่น AES: (มาตรฐานการเข้ารหัสขั้นสูง) เป็นที่รู้จักกันว่าวิธีการเข้ารหัส Rijndael ในการเข้ารหัสซึ่งเป็นมาตรฐานการเข้ารหัสบล็อกที่นำโดยรัฐบาลสหรัฐ มาตรฐานนี้ใช้เพื่อแทนที่ DES ดั้งเดิมและได้รับการวิเคราะห์โดยหลายฝ่ายและใช้กันอย่างแพร่หลายทั่วโลก
อัลกอริทึมการเข้ารหัสแบบอสมมาตร: RSA, DSA, ECC
ตัวอย่างเช่น RSA: ระบบการเข้ารหัสคีย์สาธารณะ RSA ระบบการเข้ารหัสคีย์สาธารณะที่เรียกว่าการใช้คีย์การเข้ารหัสและปุ่มถอดรหัสที่แตกต่างกัน มันเป็นระบบการเข้ารหัสที่ "ได้รับปุ่มถอดรหัสจากปุ่มเข้ารหัสที่รู้จักนั้นไม่สามารถคำนวณได้"
ในระบบการเข้ารหัสคีย์สาธารณะคีย์การเข้ารหัส (เช่นคีย์สาธารณะ) PK เป็นข้อมูลสาธารณะในขณะที่คีย์ถอดรหัส (เช่นคีย์ลับ) SK จำเป็นต้องเก็บเป็นความลับ อัลกอริทึมการเข้ารหัส E และอัลกอริทึมการถอดรหัส D ยังเป็นที่สาธารณะ แม้ว่า SK คีย์ถอดรหัสจะถูกกำหนดโดยคีย์สาธารณะ PK แต่ SK ไม่สามารถคำนวณได้ตาม PK
โมดูล crypto ใน nodejs
Node ใช้ไลบรารี OpenSSL เพื่อใช้เทคโนโลยีการเข้ารหัสเนื่องจาก OpenSSL เป็นอัลกอริทึมการเข้ารหัสที่ใช้กันอย่างแพร่หลายอยู่แล้ว มันมีอัลกอริทึมเช่น MD5 หรือ SHA-1 ที่คุณสามารถใช้ในแอปพลิเคชันของคุณ
รหัสต่อไปนี้ใช้วิธีการใช้งานโมดูล Crypto Module DES
/*** * @author Chenjianxiang * @date 2016-07-07 */var crypto = ต้องการ ('crypto'); var key = '12345670'; exports.des = {อัลกอริทึม: {ecb: 'des-ecb', cbc: 'des-cbc'} var iv = บัฟเฟอร์ใหม่ (iv? iv: 0); var cipher = crypto.createCipheriv (this.algorithm.ecb, key, iv); cipher.setautopadding (จริง) // ค่าเริ่มต้นจริง var cipher = cipher.update (plaintext, 'utf8', 'base64'); cipher += cipher.final ('base64'); กลับมารหัส; }, Decrypt: ฟังก์ชัน (encrypt_text, iv) {var key = buffer ใหม่ (คีย์); var iv = บัฟเฟอร์ใหม่ (iv? iv: 0); var decipher = crypto.createCipheriv (this.algorithm.ecb, key, iv); decipher.setautopadding (จริง); var txt = decipher.update (encrypt_text, 'base64', 'utf8'); txt += decipher.final ('utf8'); กลับ txt; -ใช้วิธีการเข้ารหัสและถอดรหัส DES
// Encrypt var cryptutil = reghed ("./ 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);ผลลัพธ์ผลลัพธ์:
I+QWOSXQVBQ18KVMX3AINOMHBS3NT+V64S
/upload/image/201602120012.jpg
การใช้งานง่าย ๆ ของ Node.js Des encryption ด้านบนเป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น