บทนำสู่ 3DES:
3DES (หรือ Triple DES) เป็นคำทั่วไปสำหรับรหัสผ่านบล็อกของอัลกอริทึมการเข้ารหัสข้อมูลสามครั้ง มันเทียบเท่ากับการใช้อัลกอริทึมการเข้ารหัส DES สามครั้งกับแต่ละบล็อกข้อมูล เนื่องจากพลังการคำนวณที่ได้รับการปรับปรุงของคอมพิวเตอร์ความยาวคีย์ของรหัสผ่าน DES ดั้งเดิมได้กลายเป็นสิ่งที่ถูกบังคับอย่างง่ายดาย 3DES ได้รับการออกแบบมาเพื่อให้วิธีการที่ค่อนข้างง่ายคือเพื่อหลีกเลี่ยงการโจมตีที่คล้ายกันโดยการเพิ่มความยาวที่สำคัญของ DES แทนที่จะออกแบบอัลกอริทึมการเข้ารหัสบล็อกใหม่ล่าสุด
วันนี้ฉันต้องใช้ DES ในฝั่งไคลเอ็นต์ ฉันพบ http://www.tero.co.uk/des/code.php อย่างรวดเร็ว
ตัวอย่างแอปพลิเคชัน
var key = "นี่คือคีย์ 24 ไบต์ !!"; var message = "นี่คือข้อความทดสอบ"; var ciphertext = des (คีย์, ข้อความ, 1, 0); document.writeLn ("การทดสอบ DES:" + StringtoHex (ciphertext));แน่นอนพบว่านี่ไม่ใช่สิ่งที่เราต้องการ เซิร์ฟเวอร์ของเราใช้ des-ede ซึ่งดูเหมือนจะเรียกว่า Triple des ใน Java
มีหลุมเล็ก ๆ ที่นี่ที่รองรับ 3DES
// กี่การวนซ้ำ (1 สำหรับ des, 3 สำหรับสาม des) var iterations = key.length> 8? 3: 1; // เปลี่ยนโดย Paul 16/6/2007 เพื่อใช้ Triple des สำหรับ 9+ ไบต์คีย์
แต่มีข้อผิดพลาดเล็กน้อยในการใช้คีย์
ถ้าเป็น 64 บิตมันเป็นวิธีแก้ปัญหาเชิงบวกของ DES แต่ 3DES อาจเป็น 128 บิตหรือ 192 บิต
กระบวนการของ 3DES คือ EN (K3, DE (K2, EN (K1, P)))))
เมื่อ K1 = K3 สามารถใช้คีย์ 128 บิตที่เรียบง่าย
key = "K1K1K1K1K2K2K2K2K2" ในความเป็นจริงมันควรจะเทียบเท่ากับ K1K1K1K1K2K2K2K2K2K1K1K1K1K1K1 ผู้เขียนไม่ได้นำไปใช้
อีกโหมดการจ้างงาน ในระยะสั้นเมื่อบล็อกการเข้ารหัสพื้นที่ไม่เพียงพอควรเติมได้อย่างไร? ด้านล่างคือซอร์สโค้ด
ถ้า (padding == 2) ข้อความ += ""; // pad ข้อความด้วย spaceselse ถ้า (padding == 1) {temp = 8- (len%8); ข้อความ += string.fromCharcode (อุณหภูมิ, อุณหภูมิ, อุณหภูมิ, อุณหภูมิ, อุณหภูมิ, อุณหภูมิ, อุณหภูมิ, อุณหภูมิ); if (temp == 8) len += 8;} // pkcs7 paddingelse ถ้า (! padding) ข้อความ += "/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0 // pad ข้อความด้วยไบต์ Nullตอนนี้ใช้ PKCS5/7 โดยทั่วไป
ให้ความสนใจกับสองจุดนี้เมื่อโทรมาในความเป็นจริง Des-ede ถูกนำมาใช้
ตัวอย่าง
var key = "B964B7C58E99B59" + "B964B7C5"; var message = "นี่คือข้อความทดสอบ"; var ciphertext = DES (คีย์, ข้อความ, 1, 0,0,1); document.writeln ("<br/> การทดสอบ DES3:"ด้านบนเป็น 3DES ใน JavaScript แนะนำให้คุณรู้จักโดยบรรณาธิการ ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!