เติมเต็ม
การใช้การเข้ารหัส Spring Cloud Config ต้องดาวน์โหลดส่วนขยาย JCE เพื่อสร้าง ciphertexts ที่มีความยาวไม่สิ้นสุด ลิงค์: http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
หลังจากดาวน์โหลดแล้ว UNZIP และคัดลอกแพ็คเกจ JAR สองชุดที่ได้รับใน $ JAVA_HOME/JRE/LIB/DIRECTORY
การแนะนำ
ในสภาพแวดล้อมโครงการจริงเราจะไม่เก็บข้อความที่เป็นความลับเช่นรหัสผ่านในไฟล์กำหนดค่าเพื่อป้องกันไม่ให้ถูกขโมย Spring Cloud Config ให้วิธีการเข้ารหัสเพื่อเข้ารหัสข้อความ PlainText ลงใน CipherText ที่เก็บไว้ในไฟล์การกำหนดค่า Spring Cloud Config ให้วิธีการเข้ารหัสและการถอดรหัสสองวิธีหนึ่งคือการเข้ารหัสแบบสมมาตรและอีกวิธีหนึ่งคือการเข้ารหัสแบบไม่สมมาตร บทความนี้จะแสดงวิธีการใช้การเข้ารหัสแบบสมมาตรก่อน
บทนำเกี่ยวกับการเข้ารหัสแบบสมมาตร
การเข้ารหัสแบบสมมาตรหมายความว่าทั้งสองฝ่ายในการสื่อสารใช้คีย์เดียวกันเพื่อเข้ารหัสและถอดรหัสข้อความ มีวิธีการเข้ารหัสสองวิธี:
การเข้ารหัสแบบสมมาตรเป็นวิธีที่ค่อนข้างง่าย ตราบใดที่ทั้งสองฝ่ายมีคีย์เดียวกันพวกเขาสามารถทำการเข้ารหัสและถอดรหัสข้อความให้เสร็จสมบูรณ์ อย่างไรก็ตามข้อเสียของการเข้ารหัสแบบสมมาตรคือมันไม่สามารถตรวจสอบแหล่งที่มาได้ นั่นคือถ้าอลิซและบ๊อบกำลังสื่อสารอลิซใช้กุญแจเพื่อส่งข้อความที่เข้ารหัสไปยังบ๊อบ แต่อีฟสกัดกั้น ciphertext ตรงกลางจากนั้นอีฟก็ส่งต่อ ciphertext ไปยังบ๊อบทำให้บ๊อบคิดผิดพลาดว่าอีฟเป็นอลิซ
ซอร์สโค้ดโครงการ
Gitee Code Cloud
กำหนดค่า configserver
ก่อนอื่นเราจำเป็นต้องตั้งค่าคีย์สำหรับการเข้ารหัสและเพิ่มรายการการกำหนดค่าต่อไปนี้ในไฟล์การกำหนดค่า bootstrap.yml ในโครงการ configserver ของเรา:
เข้ารหัส: คีย์: thisismysecretkey
ทดสอบ
เราใช้คีย์นี้เพื่อเข้ารหัสรายการทดสอบของลูกค้าเว็บของเรา Spring Cloud Config ให้เส้นทางเทอร์มินัลที่เข้ารหัสและถอดรหัส /เข้ารหัสและ /ถอดรหัส เริ่ม configserver จากนั้นเราเข้ารหัสข้อความทดสอบของเราโดยใช้ /เข้ารหัสเทอร์มินัล:
CURL LOCALHOST: 8888/Encrypt -D 12345678
ผลลัพธ์ที่ส่งคืนคือ (ผลลัพธ์จะแตกต่างกันทุกครั้ง):
94C1027141ADD9844EC47F0BE13CAEBB6B38ED1DCF99811B1A5CD2B874C64407
จากนั้นในพื้นที่เก็บข้อมูลการกำหนดค่าระยะไกลของเราแก้ไขการกำหนดค่า web-client.yml และเพิ่มการกำหนดค่าใหม่:
ทดสอบ: รหัสผ่าน: '{Cipher} 94C1027141ADD9844EC47F0BE13CAEBB6B38ED1DCF99811B1A5CD2B874C64407'คำพูดที่นี่จำเป็นต้องมีจากนั้น {cipher} ระบุว่ารายการข้อมูลเป็น ciphertext จากนั้นเราสามารถตรวจสอบการถอดรหัส:
CURL LOCALHOST: 8888/DECRYPT -D 94C1027141ADD9844EC47F0BE13CAEBB6B38ED1DCF99811B1A5CD2B874C64407
ภายใต้สถานการณ์ปกติเราจะได้รับ 12345678 อักขระ จากนั้นเราเข้าถึงไฟล์การกำหนดค่า web-client.yml ผ่าน URL และเราจะได้รับผลลัพธ์ต่อไปนี้:
{"ชื่อ": "เว็บลูกค้า", "โปรไฟล์": ["ค่าเริ่มต้น"], "ฉลาก": null, "เวอร์ชัน": "6b73c56449acee907fcf37e50892a3afdddbf6335" "https://gitee.com/zxuqian/spring-cloud-config-remote/web-client.yml", "แหล่งที่มา": {"ข้อความ": "ข้อความนี้มาจากที่เก็บการกำหนดค่าระยะไกล", "การจัดการ.คุณจะเห็นว่าการทดสอบถอดรหัส Password คือ 12345678
สรุป
ด้านบนเป็นวิธีการใช้การเข้ารหัสแบบสมมาตรสำหรับไฟล์การกำหนดค่าการกำหนดค่าสปริงคลาวด์ที่แนะนำโดยตัวแก้ไข ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!