تقدم هذه المقالة طريقتين لتشفير كلمة المرور ، والتي تعتبر شائعة جدًا ويمكن العثور عليها في الإرادة على Baidu.
1. كلمة مرور مورس ؛
الحديث عن طريقة تشفير كلمة المرور ، يجب أن نذكر. كلاسيكي جدا.
أولاً ، دعنا نتحدث عن جدول المقارنة الخاص به ونلتقط الصورة مباشرة.
الفكرة الأساسية هي استبدال كلمة مرور النص العادي واستبدال الأحرف المقابلة بمجموعة من الرموبين ؛
2. كلمة مرور السياج ؛
تتمثل كلمة مرور السياج المزعومة في تقسيم النص العادي ليتم تشفيرها إلى مجموعات N ، ثم قم بتوصيل الكلمة الأولى من كل مجموعة لتشكيل جملة غير منتظمة. ومع ذلك ، هناك قاعدة خفية لكلمة مرور السياج نفسها ، أي أنه لا يوجد عمومًا الكثير من الحروف التي تشكل السياج. (عمومًا لا يزيد عن 30 ، أي جملة أو جملتين)
لا يوجد شيء يمكن قوله حول هذا ، على سبيل المثال ، يمكنك تشفير النص العادي ASDFGHJKL ؛ وهي مقسمة إلى مجموعتين: موقف أساسي وموقف متساوي. ثم يتم الجمع بين الاثنين في ADGJLSFHK ؛
قمت بدمج هذين طريقتين للتشفير والتشفير الثلاثي لكلمة مرور النص العادي: سياج الطبقة الأولى مرة واحدة ، وسياج الطبقة الثانية مرة واحدة ، والطبقة الثالثة تشفير الطحلب مرة أخرى ؛
أولا الجزء السور:
! السلسلة p1 = new string () ؛ سلسلة p2 = new String () ؛ لـ (int i = 0 ؛ i <password.length () ؛ i ++) {if (i ٪ 2 == 0) p1+= p.valueof (password.charat (i)) ؛ آخر p2 += p.valueof (password.charat (i)) ؛ } إرجاع p1+p2 ؛ } /*decryption part* / public string decode (String fencePassword) {String Password = new String () ؛ سلسلة p = new string () ؛ String P1 = FencePassword.SubString (0 ، FencePassword.length ()/2) ؛ String P2 = FencePassword.SubString (FencePassword.length ()/2) ؛ int أنا ؛ لـ (i = 0 ؛ i <p1.length () ؛ i ++) {password += p.valueof (p1.charat (i)) +p.valueof (p2.charat (i)) ؛ } if (fencePassword.length () ٪ 2! = 0) password += p.valueof (p2.charat (i)) ؛ إرجاع كلمة المرور ؛ }} ثم هناك جزء مورس :
هذا الجزء معقد للغاية ، لأنه يتعلق بمشكلة المطابقة بين كلمات مرور مورس والرموز. أفكر في استخدام صفيف للتخزين ثم حلقة لمطابقتها. لكنني شخص لا يخاف من المتاعب ويسعى فقط إلى البساطة ، لذلك قارنت واحدة تلو الأخرى ؛
ثم ، أثناء تشفير Morse وفك التشفير ، تم إجراء تشفير السياج وفك التشفير مرتين ؛ وبهذه الطريقة ، عند استخدام التشفير وفك التشفير ، ما عليك سوى استدعاء وظيفة تشفير Morse وفك التشفير.
/*تشفير MOSS وفئة فك التشفير*/import java.util.stringTokenizer ؛ فئة عامة morse {/*تطابق ثابت بين كلمة المرور والأحرف*/السلسلة النهائية a = ".-" ؛ السلسلة النهائية ب = "---." ؛ السلسلة النهائية 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 = "----." ؛ فترة السلسلة النهائية = ".-.-- .--" ؛ //. السلسلة الأخيرة من القولون = "---..." ؛ //: Final String fama = "--..--" ؛ // ، Final String Semicolon = "-.-.-." ؛ // ؛ سؤال السلسلة النهائي = "..-- .." ؛ //؟ السلسلة النهائية متساوية = "-...--" ؛ // = Final String doublequotation = ".-..--. "-. قضية "أ". حالة "O": العودة o case "Q" حالة "x": العودة x ؛ حالة "y": العودة y ؛ حالة "Z": العودة Z ؛ حالة "0": إرجاع $ 0 ؛ الحالة "1": إرجاع $ 1 ؛ الحالة "2": إرجاع $ 2 ؛ القضية "3": إرجاع $ 3 ؛ القضية "4": إرجاع 4 دولارات ؛ الحالة "5": إرجاع $ 5 ؛ القضية "6": إرجاع $ 6 ؛ القضية "7": إرجاع 7 دولارات ؛ القضية "8": إرجاع $ 8 ؛ الحالة "9": إرجاع $ 9 ؛ حالة ".": فترة العودة ؛ حالة ":": عودة القولون ؛ قضية "،": فواصل العودة ؛ حالة "؛": إرجاع فاصلة فاصلة ؛ حالة "؟": سؤال العودة ؛ حالة "=": العودة متساوية ؛ حالة "/": إرجاع doublequotation ؛ حالة "/'": إرجاع singlequotation ؛ حالة "/": إرجاع SLASH ؛ حالة "!": عودة علامات التعجب ؛ حالة "-": عودة الواصلة ؛ حالة "_": إرجاع السطح ؛ Case "(": return lroundbrackets ؛ case ")": return rroundbrackets ؛ حالة "$": إرجاع $ ؛ حالة "&": عودة Ampersand ؛ حالة "@": العودة في ؛ حالة "+": Return Plus ؛ } يعود " "؛ } /*Moss Encryption* / public String Encryption (سلسلة كلمة مرور) {fence f = new fence () ؛ كلمة المرور = f.encryption (كلمة المرور) ؛ كلمة المرور = f.encryption (كلمة المرور) ؛ String morsepasswork = new String () ؛ سلسلة mp = new String () ؛ لـ (int i = 0 ؛ i <password.length () ؛ i ++) {mp = mp.valueof (password.charat (i)) ؛ MorSepasswork + = Matching (MP) + "/" ؛ } إرجاع morsepasswork ؛ } /*فك تشفير المطابقة المقابلة* / السلسلة العامة matching2 (String str) {if (str.equals (a)) return "a" ؛ وإلا إذا (str.equals (b)) إرجاع "b" ؛ وإلا وإلا وإلا إذا (str.equals (e)) إرجاع "e" ؛ وإلا إذا (str.equals (f)) إرجاع "f" ؛ وإلا إذا (str.equals (g)) إرجاع "g" ؛ وإلا آخر إذا كان (str.equals (i)) يعود "i" ؛ آخر إذا (str.equals (j)) يعود "J" ؛ آخر إذا (str.equals (k)) يعود "k" ؛ آخر إذا (str.equals (l)) إرجاع "l" ؛ وإلا آخر إذا (str.equals (n)) يعود "n" ؛ وإلا إذا (str.equals (o)) إرجاع "o" ؛ وإلا إذا (str.equals (p)) إرجاع "p" ؛ وإلا آخر إذا (str.equals (r)) يعود "r" ؛ وإلا آخر إذا (str.equals (t)) يعود "t" ؛ وإلا آخر إذا (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 (سؤال)) العودة "؟" ؛ آخر إذا (str.equals (متساوية)) return "=" ؛ وإلا إذا كان (str.equals (doublequotation)) يعود "/" "؛ آخر إذا (str.equals (singequotation)) (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 () {password += p.nextToken ()) ؛ بينما (p.hasmoreElements ()) {password += matching2 (p.nextToken ()) ؛ } password = f.decode (password) ؛ كلمة المرور = f.decode (كلمة المرور) ؛ إرجاع كلمة المرور ؛ }}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.