أدوات المطوّرون

أدوات يومية تختصر مهام البرمجة المتكررة.

محوّل الألوان
حوّل بين HEX وRGB وHSL وHSV وCMYK وOKLCH، وابنِ لوحات ألوان وتحقّق من التباين — داخل مت...
محلّل وكيل المستخدم (User-Agent)
اقرأ المتصفح ونظام التشغيل والجهاز في أي سلسلة وكيل مستخدم، واعرف سلسلتك أنت، وتعرّف عل...
حاسبة الشبكات الفرعية
احسب عنوان الشبكة ونطاق المضيفين والقناع لأي شبكة فرعية IPv4 أو IPv6، وقسّم الشبكة إلى ...
شارح تعبيرات Cron
اقرأ أي تعبير cron بلغة واضحة، حقلًا حقلًا، واعرف بالضبط متى سيعمل في المرة القادمة.
منسّق الأكواد وضاغطها
نسّق أو اضغط HTML وCSS وJavaScript وSQL، مع اكتشاف اللغة تلقائيًا، وكل ذلك داخل متصفحك.
مزيل CSS غير المستخدم
أبقِ فقط CSS الذي تستخدمه الصفحة، من تصدير Coverage في Chrome أو من HTML وورقة الأنماط....
فاكّ ترميز JWT
فُكّ ترميز JSON Web Token محليًا وتحقّق من توقيعه بالسرّ أو المفتاح العام، دون إرسال أي...
محوّل الطابع الزمني يونكس
حوّل طوابع يونكس الزمنية إلى تواريخ مقروءة والعكس، في أي منطقة زمنية، مع الطابع الزمني ...
مولّد التجزئة
تجزئة MD5 وSHA-1 وSHA-256 وSHA-512 للنصوص أو الملفات، وbcrypt، ومدقّق للمجموع الاختباري...
تحويل JSON إلى أنواع
حوّل عيّنة JSON إلى واجهات TypeScript أو structs لـ Go أو نماذج Python أو أصناف C# أو s...

مهام سريعة

نقرة واحدة تفتح الأداة مهيّأة مسبقًا للمهمة.

أدوات المطورين - الألوان والبصمات والطوابع الزمنية ورموز JWT

هذا قسم التحويلات الصغيرة التي تقاطع العمل الحقيقي. التصميم يعطيك لوناً بصيغة HEX وCSS يريد HSL. وسطر سجل يحمل طابعاً زمنياً يونكسياً وعليك أن تعرف كم كانت الساعة في منطقتك. وواجهة برمجية ترجع رمزاً وعليك أن ترى ما بداخله. وصفحة تنزيل تنشر بصمة SHA-256 وعليك التحقق من الملف. لا شيء من ذلك صعب؛ وكله مزعج يدوياً، والأربعة تعمل هنا بلا حساب.

ما الذي يضمه هذا القسم

الأداةماذا تفعلمتى تحتاجها
محوّل الألوانيحوّل بين HEX وRGB وHSLلوحة ألوان بصيغة وورقة أنماطك تريد صيغة أخرى
مولّد البصماتيحسب MD5 وSHA-1 وSHA-256 وSHA-512 لنص أو ملفالتحقق من تنزيل، أو مقارنة ملفين، أو توليد مفتاح ذاكرة مؤقتة
محوّل الطوابع الزمنيةيحوّل الطوابع الزمنية اليونكسية إلى تواريخ مقروءة والعكس، عبر المناطق الزمنيةسجل أو عمود قاعدة بيانات أو استجابة واجهة يحمل رقماً حيث ينبغي أن يكون تاريخ
مفكِّك JWTيفصل رمز JSON Web ويعرض ترويسته وحمولته وموعد انتهائهتصحح المصادقة وتحتاج رؤية الادعاءات
مزيل CSS غير المستخدميُبقي فقط CSS الذي تستخدمه الصفحة، من تصدير Coverage في Chrome أو من HTMLقالب أو منشئ صفحات يحمّل CSS أكثر بكثير مما تحتاجه الصفحة
منسّق الأكوادينسّق HTML وCSS وJavaScript وSQL أو يضغطها، مع لهجات SQL واكتشاف اللغة تلقائيًاحزمة أو قالب أو استعلام وصل في سطر واحد لا يُقرأ، أو مقتطف يجب أن يكون أصغر ما يمكن
شارح تعبيرات Cronيقرأ جدول cron بلغة واضحة، حقلًا حقلًا، مع مواعيد تشغيله القادمة بالتوقيت المحلي أو بـ UTCمهمة تعمل في ساعة خاطئة، أو تحتاج إلى التأكد مما يفعله سطر crontab قبل نشره
حاسبة الشبكات الفرعيةعنوان الشبكة والبث ونطاق المضيفين والأقنعة ونوع العنوان لـ IPv4 وIPv6، مع تقسيم الشبكة إلى شبكات فرعيةتكتب قاعدة جدار ناري أو خطة VPC أو إعدادات موجّه، ويجب أن يكون النطاق صحيحًا تمامًا
محلّل وكيل المستخدميقرأ المتصفح والمحرّك ونظام التشغيل والجهاز في أي سلسلة وكيل مستخدم، ويسمّي زواحف محركات البحث والذكاء الاصطناعيسطر في سجل أو تقرير تحليلات أو بلاغ خطأ يعرض وكيل مستخدم تحتاج إلى فهمه
تحويل JSON إلى أنواعيحوّل عيّنة JSON إلى أنواع TypeScript أو Go أو Python أو C# أو Rust، أو إلى JSON Schemaواجهة برمجية ترجع JSON وكودك يحتاج إلى نماذج بأنواع محددة لها

صيغ الألوان ولماذا يستحق HSL المعرفة

تصف HEX وRGB الشيء نفسه تماماً بخطين مختلفين: فالقيمة #4F46E5 هي rgb(79, 70, 229)، ثلاث قنوات من 0 إلى 255 مكتوبة بالنظام الست عشري بدل العشري. والتحويل بينهما ميكانيكي.

أما HSL فنموذج مختلف حقاً، ومن هنا يستحق مكانه. فهو يصف اللون بـالصبغة (موقعه على عجلة الألوان، من 0 إلى 360)، والتشبع (مدى حيويته، من 0 إلى 100٪)، والإضاءة (من 0 إلى 100٪). والمكسب العملي: تعتيم لون بنسبة 10٪ لحالة التمرير تغيير واحد في رقم واحد، وبناء لوحة من درجات متقاربة يعني تثبيت الصبغة والتشبع والتنقل في الإضاءة. أما فعل الشيء نفسه بصيغة HEX فيعني إعادة حساب ثلاث قنوات والتخمين.

والتباين هو السبب الآخر. فالنص يحتاج نسبة تباين لا تقل عن 4.5 إلى 1 مع خلفيته ليستوفي معيار WCAG AA بالأحجام العادية. والإضاءة في HSL تتنبأ بموقعك أفضل بكثير من التحديق في شفرة ست عشرية.

البصمات: فيمَ تفيد وفيمَ لا تفيد

دالة البصمة تحوّل أي دخل إلى بصمة ثابتة الطول. الدخل نفسه يعطي دائماً الخرج نفسه؛ وتغيير محرف واحد يعطي خرجاً مختلفاً تماماً؛ ولا يمكن الرجوع من البصمة إلى الدخل. وهذا يجعل البصمات الأداة الصحيحة للتحقق من السلامة والأداة الخاطئة لتخزين كلمات المرور.

الخوارزميةالخرجالحال
MD5128 بتمكسورة أمنياً. يمكن اصطناع التصادمات عمداً. لا بأس بها كمجموع تحقق غير أمني أو مفتاح ذاكرة مؤقتة
SHA-1160 بتمكسورة منذ 2017. ما زالت تُرى في أنظمة قديمة وفي معرفات كائنات Git؛ لا تخترها لشيء جديد
SHA-256256 بتالخيار القياسي اليوم للتحقق من الملفات والتواقيع والشهادات
SHA-512512 بتالعائلة نفسها بخلاصة أكبر، وغالباً أسرع على عتاد 64 بت

الاستعمال اليومي هو التحقق من تنزيل: ينشر الموقع بصمة SHA-256، فتحسب أنت بصمة الملف الذي استلمته بـمولّد البصمات، فإما أن تتطابق السلسلتان محرفاً محرفاً وإما لا. وهذا يلتقط التنزيل المبتور والمرآة المتلاعب بها على السواء.

أما ما لا تصلح له البصمات فهو كلمات المرور. فبصمة SHA-256 بسيطة لكلمة مرور يمكن مهاجمتها بمليارات المحاولات في الثانية على عتاد عادي. وتخزين كلمات المرور يتطلب دالة بطيئة ومملّحة ومصممة لهذا الغرض - bcrypt أو scrypt أو Argon2 - مكلفة عن قصد. فإن كنت تبصم كلمة مرور بأي شيء من الجدول أعلاه، فتلك علة. ولهذا الغرض بالذات يضم مولّد البصمات تبويباً لـ bcrypt: يصنع بصمة bcrypt بمعامل الكلفة الذي تختاره، ويتحقق من كلمة مرور مقابل بصمة مخزّنة، وصفحة bcrypt تفتحه مباشرة.

الطوابع الزمنية اليونكسية وارتباك المناطق

يعدّ الطابع الزمني اليونكسي الثواني منذ منتصف ليل التوقيت العالمي في الأول من يناير 1970. وهو بلا منطقة زمنية، ولهذا تحديداً تستعمله الأنظمة: فهو لحظة واحدة لا لبس فيها، وكل لغة تستطيع تحويله إلى الوقت المحلي للعرض. والرقم من عشر خانات ثوانٍ؛ والرقم من ثلاث عشرة خانة مللي ثوانٍ، وهو ما ترجعه Date.now() في جافاسكريبت، وسبب شائع جداً لحطّ التواريخ في 1970 أو في العام 55000.

ومحوّل الطوابع الزمنية يعمل في الاتجاهين ويعرض الناتج بالتوقيت العالمي إلى جانب وقتك المحلي، وهي عادة المقارنة التي تحتاجها فعلاً عند قراءة سجل كُتب على خادم في منطقة أخرى. وثمة تاريخان يستحقان المعرفة: 2147483647 هو آخر ثانية يسع طابع زمني بـ32 بت ذي إشارة أن يحملها، في يناير 2038، و0 هو المبدأ نفسه - فطابع زمني بقيمة صفر أو تاريخ الأول من يناير 1970 يعني في الغالب الأعم أن قيمة لم تُضبط قط.

قراءة رمز JWT

رمز JSON Web ثلاثة مقاطع Base64 آمنة للروابط تفصلها نقاط: ترويسة تذكر الخوارزمية التي وقّعته، وحمولة من الادعاءات، وتوقيع. ومفكِّك JWT يفصلها ويعرض الأولين بصيغة JSON مقروءة، مع تحويل exp وiat إلى تواريخ - وهو عادة كل السؤال حين يُرفض طلب ما.

ونقطتان لا بد من وضوحهما. الأولى أن الحمولة غير مشفّرة. فكل من يملك الرمز يستطيع قراءة كل ادعاء فيه، ومن ثم فرمز JWT ليس مكاناً لأي شيء خاص. والثانية أن فك الترميز ليس تحققاً: فقراءة الادعاءات تخبرك بما يزعمه الرمز، لا بصحة التوقيع. ولا يستطيع الإجابة عن ذلك إلا الخادم الذي يملك المفتاح، ولا ينبغي لأي أداة متصفح أن تطلب منك لصق سر التوقيع لمعرفة ذلك.

ولأن الرمز بيانات اعتماد حية ما دام صالحاً، فإن المكان الذي تلصقه فيه يهم. وهذا المفكِّك يعمل بالكامل داخل متصفحك - تحلّل جافاسكريبت الرمز على جهازك ولا يُرسل شيء إلى أي مكان، ويمكنك تأكيد ذلك في لوحة الشبكة.

أقسام ذات صلة

الأسئلة الشائعة

هل أحتاج إلى تثبيت شيء لاستعمال هذه الأدوات؟
لا. كل أداة هنا تعمل مباشرة في متصفحك — افتح الصفحة وابدأ.
هل تصلح هذه الأدوات للاستعمال في الإنتاج؟
نعم، للمهام اليومية السريعة كالتصحيح والتنسيق وفحص البيانات. أما في سير العمل المؤتمت فتستعمل عادة مكتبات مكافئة داخل شفرتك، لكن هذه الأدوات ممتازة للفحوص اليدوية العابرة.
هل تُرسل شفرتي أو بياناتي إلى أي مكان عند استعمال هذه الأدوات؟
لا. كل أداة في LogicUtil تعمل بالكامل داخل متصفحك، ومحوّل الصور منها، فلا تغادر شفرتك وبياناتك جهازك.