اليوم ، عند العمل في مشروع قديم ، واجهت شرطًا. لقد قمت بتشفير وفك تشفير المعلمات في عنوان URL في JavaScript ، ووجدت هذا الرمز المفيد من الإنترنت:
نسخة الكود كما يلي:
<script language = "javaScript">
<!- ابدأ
وظيفة تشفير (str ، pwd) {
إذا (str == "") return "" ؛
str = الهروب (str) ؛
if (! pwd || pwd == "") {var pwd = "1234" ؛ }
PWD = الهروب (PWD) ؛
if (pwd == null || pwd.length <= 0) {
تنبيه ("الرجاء إدخال كلمة مرور لتشفير الرسالة.") ؛
العودة لاغية.
}
var prand = "" ؛
لـ (var i = 0 ؛ i <pwd.length ؛ i ++) {
prand += pwd.charcodeat (i) .toString () ؛
}
var spos = math.floor (prand.length / 5) ؛
var mult = parseint (prand.charat (spos) + prand.charat (spos*2) + prand.charat (spos*3) + prand.charat (spos*4) + prand.charat (spos*5)) ؛
var reval = math.ceil (pwd.length / 2) ؛
var modul = math.pow (2 ، 31) - 1 ؛
إذا (mult <2) {
تنبيه ("لا يمكن للخوارزمية العثور على تجزئة مناسبة. يرجى اختيار كلمة مرور مختلفة. /اعتبارات npossible هي اختيار كلمة مرور أكثر تعقيدًا أو أطول.") ؛
العودة لاغية.
}
var salt = math.round (math.random () * 100000000) ٪ 100000000 ؛
Prand += Salt ؛
بينما (prand.length> 10) {
prand = (parseint (prand.substring (0 ، 10)) + parseint (prand.substring (10 ، prand.length))). toString () ؛
}
prand = (mult * prand + rev) ٪ modul ؛
var enc_chr = "" ؛
var enc_str = "" ؛
لـ (var i = 0 ؛ i <str.length ؛ i ++) {
enc_chr = parseint (str.charcodeat (i) ^ math.floor ((prand/modul) * 255)) ؛
if (enc_chr <16) {
enc_str + = "0" + enc_chr.toString (16) ؛
}آخر
enc_str += enc_chr.toString (16) ؛
prand = (mult * prand + rev) ٪ modul ؛
}
الملح = الملح. tostring (16) ؛
بينما (Salt.Length <8) Salt = "0" + Salt ؛
enc_str += ملح ؛
إرجاع enc_str ؛
}
دالة decrypt (str ، pwd) {
إذا (str == "") return "" ؛
if (! pwd || pwd == "") {var pwd = "1234" ؛ }
PWD = الهروب (PWD) ؛
if (str == null || str.length <8) {
في حالة تأهب ("لا يمكن استخراج قيمة الملح من الرسالة المشفرة لأن طولها قصير جدًا. لا يمكن فك تشفير الرسالة.") ؛
يعود؛
}
if (pwd == null || pwd.length <= 0) {
التنبيه ("الرجاء إدخال كلمة مرور يمكن من خلالها فك تشفير الرسالة.") ؛
يعود؛
}
var prand = "" ؛
لـ (var i = 0 ؛ i <pwd.length ؛ i ++) {
prand += pwd.charcodeat (i) .toString () ؛
}
var spos = math.floor (prand.length / 5) ؛
var mult = parseint (prand.charat (spos) + prand.charat (spos*2) + prand.charat (spos*3) + prand.charat (spos*4) + prand.charat (spos*5)) ؛
var reval = math.round (pwd.length / 2) ؛
var modul = math.pow (2 ، 31) - 1 ؛
var salt = parseint (str.substring (str.length - 8 ، str.length) ، 16) ؛
str = str.substring (0 ، str.length - 8) ؛
Prand += Salt ؛
بينما (prand.length> 10) {
prand = (parseint (prand.substring (0 ، 10)) + parseint (prand.substring (10 ، prand.length))). toString () ؛
}
prand = (mult * prand + rev) ٪ modul ؛
var enc_chr = "" ؛
var enc_str = "" ؛
لـ (var i = 0 ؛ i <str.length ؛ i+= 2) {
enc_chr = parseint (parseint (str.substring (i ، i+2) ، 16) ^ math.floor ((prand/modul) * 255)) ؛
enc_str += string.fromcharcode (enc_chr) ؛
prand = (mult * prand + rev) ٪ modul ؛
}
إرجاع unescape (enc_str) ؛
}
// end ->
</script>
في المستقبل ، إذا واجهت مشكلات التشفير وفك التشفير ، يمكنك كتابة الكود أعلاه مباشرة في ملف JS ثم القيام بذلك. من السهل حفظ المتاعب. . . .