أردت اليوم تغيير نمط منتدى Discuz، ولكن بعد تنزيل ملف النمط وجدت أنه مشفر بـ Base64.
أوصى شياو لين بصفحة تم فك تشفيرها، والرمز المستخرج هو كما يلي:
انسخ رمز الكود كما يلي:
<!DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
<أتش تي أم أل>
<الرأس>
<title>Base64 وURL والتشفير وفك التشفير السداسي</title>
<meta name=description content=تشفير البيانات أو فك تشفيرها في Base64 أو ترميز URL باستخدام JavaScript من جانب العميل />
<اسم التعريف = محتوى الكلمات الرئيسية = base64، الأساس 64، urlencode، urldecode، الكود السداسي، التشفير السداسي، فك التشفير السداسي، جافا سكريبت base64، قاعدة جافا سكريبت 64، كود urlencode لجافا سكريبت، كود urldecode لجافا سكريبت، كود جافا سكريبت السداسي، كود جافا سكريبت السداسي />
<link rel=shortcut icon href=http://ostermiller.org/favicon.ico type=image/x-icon />
<لغة البرنامج النصي=نوع جافا سكريبت=نص/جافا سكريبت>
<!--
دالة urlDecode(str){
str=str.replace(new RegExp('//+','g'),' ');
إرجاع unescape(str);
}
وظيفة urlEncode(شارع){
str=escape(str);
str=str.replace(new RegExp('//+','g'),'%2B');
return str.replace(new RegExp('%20','g'),'+');
}
فار END_OF_INPUT = -1;
فار base64Chars = صفيف جديد (
'أ'، 'ب'، 'ج'، 'د'، 'هاء'، 'و'، 'ز'، 'ح'،
"أنا"، "J"، "K"، "L"، "M"، "N"، "O"، "P"،
'س'، 'R'، 'S'، 'T'، 'U'، 'V'، 'W'، 'X'،
'ص','Z','a','b','c','d','e','f',
'ز'،'ح'،'أنا'،'ي'،'ك'،'ل'،'م'،'ن'،
'o','p','q','r','s','t','u','v',
'w','x','y','z','0','1','2','3',
'4'،'5'،'6'،'7'،'8'،'9'،'+'،'/'
);
varverseBase64Chars = new Array();
لـ (var i=0; i < base64Chars.length; i++){
reverseBase64Chars[base64Chars[i]] = i;
}
فار base64Str;
فار base64Count;
الدالة setBase64Str(str){
base64Str = str;
base64Count = 0;
}
وظيفة readBase64 () {
إذا قام (!base64Str) بإرجاع END_OF_INPUT؛
إذا (base64Count >= base64Str. length) يُرجع END_OF_INPUT؛
var c = base64Str.charCodeAt(base64Count) & 0xff;
base64Count++;
العودة ج؛
}
الدالة encodeBase64(str){
setBase64Str(str);
نتيجة فار = '';
var inBuffer = new Array(3);
فار لاينكونت = 0؛
فار تم = خطأ؛
بينما (!done && (inBuffer[0] = readBase64()) != END_OF_INPUT){
inBuffer[1] = readBase64();
inBuffer[2] = readBase64();
النتيجة += (base64Chars[inBuffer[0] >> 2 ]);
إذا (inBuffer[1] != END_OF_INPUT){
result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30) | (inBuffer[1] >> 4) ]);
إذا (inBuffer[2] != END_OF_INPUT){
result += (base64Chars [((inBuffer[1] << 2) & 0x3c) | (inBuffer[2] >> 6) ]);
result += (base64Chars [inBuffer[2] & 0x3F]);
} آخر {
result += (base64Chars [((inBuffer[1] << 2) & 0x3c)]);
النتيجة += ('=');
تم = صحيح؛
}
} آخر {
result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30)]);
النتيجة += ('=');
النتيجة += ('=');
تم = صحيح؛
}
lineCount += 4;
إذا (عدد الأسطر >= 76){
النتيجة += ('/ن');
lineCount = 0;
}
}
نتيجة الإرجاع؛
}
وظيفة readReverseBase64(){
إذا قام (!base64Str) بإرجاع END_OF_INPUT؛
بينما (صحيح){
إذا (base64Count >= base64Str. length) يُرجع END_OF_INPUT؛
var nextCharacter = base64Str.charAt(base64Count);
base64Count++;
إذا (reverseBase64Chars[nextCharacter]){
إرجاع عكس Base64Chars[nextCharacter];
}
إذا (nextCharacter == 'A') يُرجع 0؛
}
إرجاع END_OF_INPUT؛
}
وظيفة نتوس (ن) {
n=n.toString(16);
إذا (ن. الطول == 1) ن=0+ن؛
ن=%+ن;
إرجاع unescape(n);
}
الدالة decodeBase64(str){
setBase64Str(str);
نتيجة فار = ;
var inBuffer = new Array(4);
فار تم = خطأ؛
while (!done && (inBuffer[0] = readReverseBase64()) != END_OF_INPUT
&& (inBuffer[1] = readReverseBase64()) != END_OF_INPUT){
inBuffer[2] = readReverseBase64();
inBuffer[3] = readReverseBase64();
result += ntos((((inBuffer[0] << 2) & 0xff)| inBuffer[1] >> 4));
إذا (inBuffer[2] != END_OF_INPUT){
result += ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2] >> 2));
إذا (inBuffer[3]!= END_OF_INPUT){
result += ntos((((inBuffer[2] << 6) & 0xff) | inBuffer[3]));
} آخر {
تم = صحيح؛
}
} آخر {
تم = صحيح؛
}
}
نتيجة الإرجاع؛
}
var digitArray = new Array('0','1','2','3','4','5','6','7','8','9','a', 'ب'،'ج'،'د'،'ه'،'و')؛
وظيفة إلىHex(ن){
نتيجة فار = ''
بداية فار = صحيح؛
لـ (فار i=32; i>0;){
ط-=4;
فار أرقام = (ن>>i) & 0xf;
إذا (!ابدأ || رقم != 0){
ابدأ = خطأ؛
result += digitArray[digit];
}
}
return (result==''?'0':result);
}
لوحة الوظائف (شارع، لين، وسادة) {
نتيجة فار = str;
لـ (var i=str. length; i<len; i++){
النتيجة = وسادة + نتيجة؛
}
نتيجة الإرجاع؛
}
وظيفة ترميز هيكس (شارع) {
نتيجة فار = ;
لـ (var i=0; i<str.length; i++){
result += Pad(toHex(str.charCodeAt(i)&0xff),2,'0');
}
نتيجة الإرجاع؛
}
وظيفة فك التشفير (شارع) {
str = str.replace(new RegExp(s/[^0-9a-zA-Z]//g));
نتيجة فار = ;
فار نيكستشار = ;
لـ (var i=0; i<str.length; i++){
nextchar += str.charAt(i);
إذا (nextchar.length == 2){
result += ntos(eval('0x'+nextchar));
الحرف التالي = ;
}
}
نتيجة الإرجاع؛
}
//--></script>
</الرأس>
<الجسم>
<اسم النموذج=رمز onsubmit=return false()>
<textarea name=text style='width:100%;height:75%;' onfocus='if (this.value==أدخل نصًا للتشفير أو فك التشفير هنا.){this.value=;}'>أدخل النص إلى تشفير أو فك التشفير هنا.</textarea>
<الجدول>
<tr><td محاذاة=المركز>
<قيمة الإدخال=نوع التشفير=زر عند النقر=document.code.text.value=urlEncode(document.code.text.value);>
</td><td محاذاة=مركز>
عنوان URL
</td><td محاذاة=مركز>
<قيمة الإدخال=نوع فك التشفير=زر عند النقر=document.code.text.value=urlDecode(document.code.text.value);>
</td></tr>
<tr><td محاذاة=المركز>
<قيمة الإدخال=نوع التشفير=زر عند النقر=document.code.text.value=encodeBase64(document.code.text.value);>
</td><td محاذاة=مركز>
القاعدة 64
</td><td محاذاة=مركز>
<قيمة الإدخال=نوع فك التشفير=زر عند النقر=document.code.text.value=decodeBase64(document.code.text.value);>
</td></tr>
<tr><td محاذاة=المركز>
<قيمة الإدخال=نوع التشفير=زر عند النقر=document.code.text.value=encodeHex(document.code.text.value);>
</td><td محاذاة=مركز>
عرافة
</td><td محاذاة=مركز>
<قيمة الإدخال=نوع فك التشفير=زر عند النقر=document.code.text.value=decodeHex(document.code.text.value);>
</td></tr>
<tr><td محاذاة=المركز>
</td><td محاذاة=مركز>
<نوع الإدخال=قيمة إعادة الضبط=مسح>
</td><td محاذاة=مركز>
</td></tr>
</الجدول>
</النموذج>
<ساعة>
تم نقل تشفير/فك تشفير Base64 من <a href=http://ostermiller.org/utils/Base64.html>برنامج تشفير/فك ترميز Java Base64</a>.<br>
تم نقل تشفير/فك تشفير Base64 إلى <a href=http://ostermiller.org/base64_actionscript.html>Macromedia Actionscript</a>.<br>
<h3>الترخيص</h3>
<p>هذا البرنامج مجاني ويمكنك إعادة توزيعه و/أو تعديله
بموجب شروط رخصة جنو العامة كما نشرتها الحرة
مؤسسة البرمجيات إما الإصدار 2 من الترخيص، أو (حسب اختيارك)
أي إصدار لاحق.</p>
<p>يتم توزيع هذا البرنامج على أمل أن يكون مفيدًا،
ولكن بدون أي ضمان؛ حتى بدون الضمان الضمني لقابلية التسويق
أو الملاءمة لغرض معين
<a href=http://www.gnu.org/copyleft/gpl.html>جنو
الترخيص العام</a> لمزيد من التفاصيل.</p>
<div style=padding:0.2cm;><a href=http://ostermiller.org/calc/>المزيد من المحولات والآلات الحاسبة وأشياء JavaScript الأخرى</a></div>
<div style=padding:0.2cm;text-align:right;><a href=http://ostermiller.org/>ostermiller.org</a> (<a href=http://ostermiller.org/siteindex .html>فهرس الموقع</a>)</div>
<div style=padding:0.2cm;><p>حقوق الطبع والنشر <a href=http://ostermiller.org/contact.pl?regarding=JavaScript+Encoding class=mail>ستيفن أوسترميلر</a> 2003-2006</ ص></ديف>
</الجسم>
</html>