บทความนี้แนะนำวิธีการเข้ารหัสรหัสผ่านสองวิธีซึ่งเป็นเรื่องธรรมดามากและสามารถพบได้ที่ Baidu
1. รหัสผ่านมอร์ส;
เมื่อพูดถึงวิธีการเข้ารหัสรหัสผ่านเราต้องพูดถึง คลาสสิกมาก
ก่อนอื่นมาพูดถึงตารางเปรียบเทียบของเขาและถ่ายภาพโดยตรง
แนวคิดหลักคือการแทนที่รหัสผ่านข้อความธรรมดาและแทนที่อักขระที่เกี่ยวข้องด้วยการรวมกันของสองสัญลักษณ์;
2. รหัสผ่านรั้ว;
รหัสผ่านรั้วที่เรียกว่าคือการแบ่งข้อความธรรมดาที่จะเข้ารหัสเป็นกลุ่ม N จากนั้นเชื่อมต่อคำแรกของแต่ละกลุ่มเพื่อสร้างประโยคที่ผิดปกติ อย่างไรก็ตามมีกฎที่ซ่อนอยู่สำหรับรหัสผ่านรั้วเองนั่นคือโดยทั่วไปจะมีตัวอักษรไม่มากเกินไปที่ประกอบขึ้นเป็นรั้ว (โดยทั่วไปไม่เกิน 30 นั่นคือหนึ่งหรือสองประโยค)
ไม่มีอะไรจะพูดเกี่ยวกับเรื่องนี้เช่นคุณสามารถเข้ารหัสข้อความธรรมดา asdfghjkl; มันแบ่งออกเป็นสองกลุ่ม: ตำแหน่งพื้นฐานและตำแหน่งสม่ำเสมอ จากนั้นทั้งสองจะรวมกันเป็น adgjlsfhk;
ฉันรวมวิธีการเข้ารหัสทั้งสองนี้และการเข้ารหัสสามครั้งสำหรับรหัสผ่านธรรมดา: รั้วเลเยอร์แรกหนึ่งครั้งรั้วเลเยอร์ที่สองหนึ่งครั้งและชั้นที่สามเข้ารหัสมอสอีกครั้ง;
ก่อนส่วนรั้ว:
/*คลาสการถอดรหัสและการถอดรหัสระดับ*/รั้วคลาสสาธารณะ {/*ส่วนการเข้ารหัส*/การเข้ารหัสสตริงสาธารณะ (รหัสผ่านสตริง) {สตริง p = สตริงใหม่ (); สตริง p1 = สตริงใหม่ (); สตริง p2 = สตริงใหม่ (); สำหรับ (int i = 0; i <password.length (); i ++) {ถ้า (i%2 == 0) p1+= p.valueof (password.charat (i)); else p2 += p.valueof (password.charat (i)); } return p1+p2; } /*ส่วนถอดรหัส* / การถอดรหัสสตริงสาธารณะ (สตริง fencePassword) {สตริงรหัสผ่าน = ใหม่สตริง (); สตริง p = สตริงใหม่ (); สตริง p1 = fencePassword.substring (0, fencePassword.length ()/2); สตริง p2 = fencePassword.substring (fencePassword.length ()/2); int i; สำหรับ (i = 0; i <p1.length (); i ++) {รหัสผ่าน += p.valueof (p1.charat (i)) +p.valueof (p2.charat (i)); } if (fencePassword.length ()%2! = 0) รหัสผ่าน += p.valueof (p2.charat (i)); ส่งคืนรหัสผ่าน; - จากนั้นก็มี ส่วนที่มอร์ส :
ส่วนนี้ค่อนข้างซับซ้อนเพราะมันเกี่ยวกับปัญหาการจับคู่ระหว่างรหัสผ่านมอร์สและสัญลักษณ์ ฉันคิดว่าจะใช้อาร์เรย์เพื่อจัดเก็บแล้ววนเพื่อจับคู่พวกเขา แต่ฉันเป็นคนที่ไม่กลัวปัญหาและแสวงหาความเรียบง่ายเท่านั้นดังนั้นฉันจึงเปรียบเทียบทีละคน
จากนั้นในระหว่างการเข้ารหัสมอร์สและการถอดรหัสการเข้ารหัสรั้วและการถอดรหัสได้ดำเนินการสองครั้ง; ด้วยวิธีนี้เมื่อใช้การเข้ารหัสและการถอดรหัสเพียงเรียกฟังก์ชั่นการเข้ารหัสและการถอดรหัสมอร์ส
/*คลาสการเข้ารหัสและการถอดรหัสมอส*/นำเข้า java.util.stringTokenizer; คลาสสาธารณะ Morse {/*จับคู่ค่าคงที่ระหว่างรหัสผ่าน Morss และอักขระ*/สตริงสุดท้าย a = ".-"; สตริงสุดท้าย b = "---."; สตริงสุดท้าย c = "-.-."; สตริงสุดท้าย d = "-.. "; สตริงสุดท้าย e = "."; สตริงสุดท้าย f = "..-."; สตริงสุดท้าย g = "-."; สตริงสุดท้าย h = "... "; สตริงสุดท้าย i = ".. "; สตริงสุดท้าย j = ".--"; สตริงสุดท้าย k = "-.-"; สตริงสุดท้าย l = ".- .. "; สตริงสุดท้าย m = "-"; สตริงสุดท้าย n = "-."; สตริงสุดท้าย o = "---"; สตริงสุดท้าย p = ".--."; สตริงสุดท้าย q = "-.-"; สตริงสุดท้าย r = ".-."; สตริงสุดท้าย s = "... "; สตริงสุดท้าย t = "-"; สตริงสุดท้าย u = "..-"; สตริงสุดท้าย v = "...-"; สตริงสุดท้าย w = ".--"; สตริงสุดท้าย x = "-..-"; สตริงสุดท้าย y = "-.-"; สตริงสุดท้าย z = "-.. "; สตริงสุดท้าย $ 0 = "-----"; สตริงสุดท้าย $ 1 = ".---"; สตริงสุดท้าย $ 2 = "..--"; สตริงสุดท้าย $ 3 = "...--"; สตริงสุดท้าย $ 4 = "..--"; สตริงสุดท้าย $ 5 = "...... "; สตริงสุดท้าย $ 6 = "-..... "; สตริงสุดท้าย $ 7 = "--... "; สตริงสุดท้าย $ 8 = "--- .. "; สตริงสุดท้าย $ 9 = "----."; ระยะเวลาสตริงสุดท้าย = ".-.-- .--"; - สตริงสุดท้าย colon = "---... "; //: สตริงสุดท้าย comma = "--..--"; //, สตริงสุดท้าย semicolon = "-.-.-."; - คำถามสตริงสุดท้าย = "..-- .. "; - สตริงสุดท้ายเท่ากับ = "-...--"; // = สตริงสุดท้าย doubleQuotation = ".-..--."; // "สตริงสุดท้าย singlequotation =" .-- .-. "; // 'สตริงสตริงสุดท้าย =" -..-. "; /// อัคอัพสตริงสุดท้าย =" -.-.-- "//! "-.-."; "returnes a; กรณี "O": กลับมา O; กรณี "x": return x; กรณี "y": return y; กรณี "z": return z; กรณี "0": ส่งคืน $ 0; กรณี "1": คืน $ 1; กรณี "2": คืน $ 2; กรณี "3": คืน $ 3; กรณี "4": คืน $ 4; กรณี "5": คืน $ 5; กรณี "6": คืน $ 6; กรณี "7": คืน $ 7; กรณี "8": คืน $ 8; กรณี "9": คืน $ 9; กรณี ".": ระยะเวลาส่งคืน; กรณี ":": ลำไส้ใหญ่กลับ; กรณี ",": return comma; กรณี ";": ส่งคืนอัฒภาค; กรณี "?": คำถามกลับ; กรณี "=": คืนค่าเท่ากับ; กรณี "/": ส่งคืน doublequotation; กรณี "/'": ส่งคืน singlequotation; กรณี "/": คืนสแลช; กรณี "!": ตอบกลับ; กรณี "-": คืนยัติภังค์; กรณี "_": return enderscore; กรณี "(": ส่งคืน lroundbrackets; case ")": return rroundbrackets; กรณี "$": return $; กรณี "&": return ampersand; กรณี "@": กลับมาที่; กรณี "+": return plus; } กลับ " "; } /*การเข้ารหัสมอส* / การเข้ารหัสสตริงสาธารณะ (รหัสผ่านสตริง) {Fence F = New Fence (); รหัสผ่าน = f.encryption (รหัสผ่าน); รหัสผ่าน = f.encryption (รหัสผ่าน); String morsepasswork = new String (); สตริง mp = สตริงใหม่ (); สำหรับ (int i = 0; i <password.length (); i ++) {mp = mp.valueof (password.charat (i)); morsepasswork + = การจับคู่ (MP) + "/"; } return morsepasswork; } /*decrypt การจับคู่ที่สอดคล้องกัน* / สตริงสาธารณะที่ตรงกัน 2 (สตริง str) {ถ้า (str.equals (a)) กลับ "a"; อื่นถ้า (str.equals (b)) กลับ "b"; อื่นถ้า (str.equals (c)) กลับ "c"; อื่นถ้า (str.equals (d)) กลับ "d"; อื่นถ้า (str.equals (e)) กลับ "e"; อื่นถ้า (str.equals (f)) กลับ "f"; อื่นถ้า (str.equals (g)) กลับ "g"; อื่นถ้า (str.equals (h)) กลับ "h"; อื่นถ้า (str.equals (i)) กลับ "ฉัน"; อื่นถ้า (str.equals (j)) กลับ "j"; อื่นถ้า (str.equals (k)) กลับ "k"; อื่นถ้า (str.equals (l)) กลับ "l"; อื่นถ้า (str.equals (m)) กลับ "m"; อื่นถ้า (str.equals (n)) กลับ "n"; อื่นถ้า (str.equals (o)) กลับ "o"; อื่นถ้า (str.equals (p)) กลับ "p"; อื่นถ้า (str.equals (q)) กลับ "q"; อื่นถ้า (str.equals (r)) กลับ "r"; อื่นถ้า (str.equals (s)) กลับ "s"; อื่นถ้า (str.equals (t)) กลับ "t"; อื่นถ้า (str.equals (u)) กลับ "u"; อื่นถ้า (str.equals (v)) กลับ "v"; อื่นถ้า (str.equals (w)) กลับ "w"; อื่นถ้า (str.equals (x)) กลับ "x"; อื่นถ้า (str.equals (y)) กลับ "y"; อื่นถ้า (str.equals (z)) กลับ "z"; อื่นถ้า (str.equals ($ 0)) กลับ "0"; อื่นถ้า (str.equals ($ 1)) กลับ "1"; อื่นถ้า (str.equals ($ 2)) กลับ "2"; อื่นถ้า (str.equals ($ 3)) กลับ "3"; อื่นถ้า (str.equals ($ 4)) กลับ "4"; อื่นถ้า (str.equals ($ 5)) กลับ "5"; อื่นถ้า (str.equals ($ 6)) กลับ "6"; อื่นถ้า (str.equals ($ 7)) กลับ "7"; อื่นถ้า (str.equals ($ 8)) กลับ "8"; อื่นถ้า (str.equals ($ 9)) กลับ "9"; อื่นถ้า (str.equals (ระยะเวลา)) กลับ "."; อื่นถ้า (str.equals (colon)) กลับ ":"; อื่นถ้า (str.equals (เครื่องหมายจุลภาค) กลับมา ",", "; อื่นถ้า (str.equals (semicolon)) กลับ ";"; "; อื่นถ้า (str.equals (คำถาม)) กลับ "?"; อื่นถ้า (str.equals (เท่ากับ)) กลับ "="; อย่างอื่นถ้า (str.equals (doublequotation)) กลับ "/" "; อื่นถ้า (str.equals (singlequotation)) กลับ"/'"; อื่นถ้า (str.equals (slash)) กลับ"/"; อื่น ๆ ถ้า (str.equals (slash)) กลับ" (str.equals (ยัติภังค์)) กลับมา "-"; (str.equals(at)) return "@"; else if (str.equals(at)) return "@"; else if (str.equals(at)) return "@"; else if (str.equals($)) return "$"; else if (str.equals(ampersand)) return "&"; else if (str.equals(at)) return "@"; else if (str.equals(plus)) return "+"; else return " "; } /*morelements ()) {รหัสผ่าน += matching2 (p.nexttoken ());} รหัสผ่าน = f.decode (รหัสผ่าน); ในขณะที่ (p.hasmoreElements ()) {รหัสผ่าน += matching2 (p.nexttoken ()); } password = f.decode (รหัสผ่าน); รหัสผ่าน = f.decode (รหัสผ่าน); ส่งคืนรหัสผ่าน; -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น