
إطار تشفير تطوري يعتمد على التعقيد القابل للتوسع عبر الزمن

يركز temcrypt على حماية البيانات فائقة الحساسية، وهو آلية تشفير تطورية متعددة الطبقات متقدمة توفر تعقيدًا قابلًا للتوسع بمرور الوقت، ومقاومة لهجمات القوة الغاشمة الشائعة.
يمكنك إنشاء تطبيقاتك ونصوصك وأتمتاتك الخاصة عند نشره.
اكتشف ما يعنيه temcrypt، والميزات والإلهام الذي دفعني لإنشائه، والمزيد. اقرأ وثيقة المعرفة. هذا مهم جدًا لك.
temcrypt متوافق مع Node.js الإصدار 18 أو الأحدث، ومع متصفحات الويب الحديثة، مما يسمح لك باستخدامه في بيئات مختلفة.
الاعتماديات الوحيدة التي يستخدمها temcrypt هي crypto-js للتعامل مع خوارزميات التشفير مثل AES-256 وSHA-256 وبعض المرمزات، وfs لمعالجة الملفات مع Node.js.
لاستخدام temcrypt، يجب أن يكون لديك Node.js مثبتًا. بعد ذلك، يمكنك تثبيت temcrypt باستخدام npm:
npm install temcrypt
بعد ذلك، قم باستيراده في الكود الخاص بك كما يلي:
const temcrypt = require("temcrypt");
يتضمن ميزة التثبيت التلقائي لاعتمادياته، لذلك لا داعي للقلق بشأن تثبيتها يدويًا. فقط قم بتشغيل مكتبة temcrypt.js وسيتم تثبيت الاعتماديات تلقائيًا ثم استدعها في الكود الخاص بك، وقد تم ذلك لجعلها محمولة:
node temcrypt.js
بدلاً من ذلك، يمكنك استخدام temcrypt مباشرة في المتصفح عن طريق تضمين علامة البرنامج النصي التالية:
<script src="temcrypt.js"></script>
أو النسخة المصغرة:
<script src="temcrypt.min.js"></script>
يمكنك أيضًا استدعاء المكتبة على موقعك الإلكتروني أو تطبيق الويب من CDN:
<script src="https://cdn.jsdelivr.net/gh/jofpin/temcrypt/temcrypt.min.js"></script>
يوفر temcrypt وظائف مثل encrypt وdecrypt لحماية معلوماتك والكشف عنها بأمان.
المعلمات
dataString (سلسلة نصية): بيانات السلسلة النصية المراد تشفيرها.dataFiles (سلسلة نصية): مسار الملف المراد تشفيره. قم بتوفير إما dataString أو dataFiles.mainKey (سلسلة نصية): المفتاح الرئيسي (الخاص) للتشفير.extraBytes (رقم، اختياري): بايتات إضافية تضاف إلى التشفير. معلمة اختيارية تستخدم في عملية تشفير temcrypt. تسمح لك بإضافة بايتات إضافية إلى البيانات المشفرة، مما يزيد من تعقيد التشفير، الأمر الذي يتطلب قوة معالجة أكبر لفك التشفير. كما أنها تعمل على فقدان الأنماط عن طريق تغيير وزن التشفير.النتائج
status (منطقي): true للإشارة إلى نجاح عملية فك التشفير.hash (سلسلة نصية): الهاش الفريد الذي تم إنشاؤه للتحقق من شرعية البيانات المشفرة.dataString (سلسلة نصية) أو dataFiles: السلسلة النصية التي تم فك تشفيرها أو مسار الملف الذي تم فك تشفيره، حسب المدخلات.updatedEncryptedData (سلسلة نصية): البيانات المشفرة المحدثة بعد فك التشفير. في كل مرة يتم فيها فك تشفير البيانات المشفرة، يتم تحديث المخرجات، لأن المفتاح الرئيسي يغير ترتيبه ويتم حفظ تاريخ آخر فك تشفير.creationDate (سلسلة نصية): تاريخ إنشاء البيانات المشفرة.lastDecryptionDate (سلسلة نصية): تاريخ آخر فك تشفير ناجح للبيانات.dataString:
hash (سلسلة نصية): الهاش الفريد الذي تم إنشاؤه للتحقق من شرعية البيانات المشفرة.mainKey (سلسلة نصية): المفتاح الرئيسي (الخاص) المستخدم للتشفير.فيما يلي بعض الأمثلة حول كيفية استخدام temcrypt. يرجى ملاحظة أنه عند التشفير، يجب عليك إدخال مفتاح وحفظ الساعة والدقيقة التي قمت فيها بتشفير المعلومات. لفك تشفير المعلومات، يجب عليك استخدام نفس المفتاح الرئيسي في نفس الساعة والدقيقة في الأيام التالية:
const dataToEncrypt = "بيانات حساسة";
const mainKey = "مفتاحك_السري"; // أدخل مفتاحك المخصص
const encryptedData = temcrypt.encrypt({
dataString: dataToEncrypt,
mainKey: mainKey
});
console.log(encryptedData);
const encryptedData = "..."; // البيانات المشفرة التي تم الحصول عليها من عملية التشفير
const mainKey = "مفتاحك_السري";
const decryptedData = temcrypt.decrypt({
dataString: encryptedData,
mainKey: mainKey
});
console.log(decryptedData);
تشفير ملف:
لتشفير ملف باستخدام temcrypt، يمكنك استخدام دالة encrypt مع معامل dataFiles. إليك مثال لكيفية تشفير ملف والحصول على نتيجة التشفير:
const temcrypt = require("temcrypt");
const filePath = "path/test.txt";
const mainKey = "مفتاحك_السري";
const result = temcrypt.encrypt({
dataFiles: filePath,
mainKey: mainKey,
extraBytes: 128 // اختياري: إضافة 128 بايت إضافية
});
console.log(result);
في هذا المثال، استبدل 'test.txt' بالمسار الفعلي للملف الذي تريد تشفيره، واضبط 'مفتاحك_السري' كمفتاح رئيسي للتشفير. سيحتوي كائن result على تفاصيل التشفير، بما في ذلك الهاش الفريد، المفتاح الرئيسي، مفتاح الوقت، ومسار الملف المشفر.
فك تشفير ملف:
لفك تشفير ملف تم تشفيره سابقًا باستخدام temcrypt، يمكنك استخدام دالة decrypt مع معامل dataFiles. إليك مثال لكيفية فك تشفير ملف والحصول على نتيجة فك التشفير:
const temcrypt = require("temcrypt");
const filePath = "path/test.txt.trypt";
const mainKey = "مفتاحك_السري";
const result = temcrypt.decrypt({
dataFiles: filePath,
mainKey: mainKey
});
console.log(result);
في هذا المثال، استبدل 'path/test.txt.trypt' بالمسار الفعلي للملف المشفر، واضبط 'مفتاحك_السري' كمفتاح رئيسي لفك التشفير. سيحتوي كائن النتيجة على حالة فك التشفير والبيانات التي تم فك تشفيرها، إذا نجحت العملية.
تذكر تقديم المفتاح الرئيسي الصحيح المستخدم أثناء التشفير لفك تشفير الملف بنجاح، في نفس الساعة والدقيقة بالضبط اللتين تم فيهما التشفير. إذا كان المفتاح الرئيسي خاطئًا أو تم العبث بالملف أو كان الوقت خاطئًا، فستكون حالة فك التشفير false ولن تتوفر البيانات التي تم فك تشفيرها.
يوفر temcrypt وظائف utils لإجراء عمليات إضافية تتجاوز التشفير وفك التشفير. تم تصميم هذه الوظائف المساعدة لتعزيز الوظائف وسهولة الاستخدام.
قائمة الوظائف:
أدناه، يمكنك رؤية التفاصيل وكيفية تنفيذ استخداماتها.
تحديث المفتاح الرئيسي:
تتيح لك وظيفة changeKey المساعدة تغيير المفتاح الرئيسي المستخدم لتشفير البيانات مع الحفاظ على البيانات المشفرة سليمة. يكون هذا مفيدًا عندما تريد تعزيز أمان بياناتك المشفرة أو تحديث المفتاح الرئيسي بشكل دوري.
dataFiles (اختياري): المسار إلى الملف الذي تم تشفيره باستخدام temcrypt.dataString (اختياري): السلسلة النصية المشفرة التي تم إنشاؤها باستخدام temcrypt.mainKey (سلسلة نصية): المفتاح الرئيسي الحالي المستخدم لتشفير البيانات.newKey(سلسلة نصية): المفتاح الرئيسي الجديد الذي سيحل محل المفتاح الرئيسي الحالي.const temcrypt = require("temcrypt");
const filePath = "test.txt.trypt";
const currentMainKey = "مفتاحي_السري_الحالي";
const newMainKey = "مفتاح_سري_جديد";
// تحديث المفتاح الرئيسي للملف المشفر
const result = temcrypt.utils({
changeKey: {
dataFiles: filePath,
mainKey: currentMainKey,
newKey: newMainKey
}
});
console.log(result.message);
التحقق من سلامة البيانات:
تتيح لك وظيفة check المساعدة التحقق من سلامة البيانات المشفرة باستخدام temcrypt. تتحقق مما إذا كان الملف أو السلسلة النصية هي بيانات مشفرة صالحة لـ temcrypt.
dataFiles (اختياري): المسار إلى الملف الذي تريد التحقق منه.dataString (اختياري): السلسلة النصية المشفرة التي تريد التحقق منها.const temcrypt = require("temcrypt");
const filePath = "test.txt.trypt";
const encryptedString = "..."; // سلسلة نصية مشفرة تم إنشاؤها بواسطة temcrypt
// التحقق من سلامة الملف المشفر
const result = temcrypt.utils({
check: {
dataFiles: filePath
}
});
console.log(result.message);
// التحقق من سلامة السلسلة النصية المشفرة
const result2 = temcrypt.utils({
check: {
dataString: encryptedString
}
});
console.log(result2.message);
التحقق من الهاش:
تتيح لك وظيفة verify المساعدة التحقق من سلامة البيانات المشفرة باستخدام قيمة الهاش الخاصة بها. تتحقق مما إذا كانت مخرجات البيانات المشفرة تطابق قيمة الهاش المقدمة.
hash (سلسلة نصية): قيمة الهاش المراد التحقق منها.dataFiles (اختياري): المسار إلى الملف الذي تريد التحقق من هاشه.dataString (اختياري): السلسلة النصية المشفرة التي تريد التحقق من هاشها.const temcrypt = require("temcrypt");
const filePath = "test.txt.trypt";
const hashToVerify = "..."; // قيمة الهاش المراد التحقق منها
// التحقق من هاش الملف المشفر
const result = temcrypt.utils({
verify: {
hash: hashToVerify,
dataFiles: filePath
}
});
console.log(result.message);
// التحقق من هاش السلسلة النصية المشفرة
const result2 = temcrypt.utils({
verify: {
hash: hashToVerify,
dataString: encryptedString
}
});
console.log(result2.message);
يعرض الجدول التالي أكواد الأخطاء الهامة ورسائل الخطأ المقابلة لها التي يستخدمها temcrypt للإشارة إلى سيناريوهات الخطأ المختلفة.
تحقق من دليل examples للحصول على أمثلة استخدام أكثر تفصيلاً.
⚠️ توصية
يجب أن يكون حجم التشفير لسلسلة نصية أو ملف أقل من 16 كيلوبايت. إذا كان أكبر، يجب أن يكون لديك قوة حسابية كافية لفك تشفيره. وإلا، فإن جهاز الكمبيوتر الشخصي الخاص بك سيتجاوز الوقت المطلوب لـ العثور على تركيبة المفتاح الرئيسي الصحيحة والتكوين التشفيري المناسب، ولن يتمكن من فك تشفير المعلومات.
ℹ️ نصائح
- باستخدام temcrypt يمكنك فقط فك تشفير معلوماتك في الأيام اللاحقة باستخدام المفتاح الذي أدخلته في نفس الساعة والدقيقة اللتين قمت فيهما بالتشفير.
- ركز على الوقت، يُوصى ببدء فك التشفير خلال أول 2 إلى 10 ثوانٍ، لتحصل على ميزة لتوليد تشكيل المفتاح الصحيح.
محتوى هذا المشروع نفسه مرخص بموجب ترخيص المشاع الإبداعي نسبة المصنف 3.0، والكود المصدري الأساسي المستخدم في تنسيق وعرض هذا المحتوى مرخص بموجب ترخيص MIT.
حقوق النشر (ج) 2023 بواسطة Jose Pino
timeKey (سلسلة نصية): مفتاح الوقت (الخاص) للتشفير.dataString (سلسلة نصية): السلسلة النصية المشفرة.extraBytes (رقم، اختياري): البايتات الإضافية المستخدمة للتشفير.dataFiles:
hash (سلسلة نصية): الهاش الفريد الذي تم إنشاؤه للتحقق من شرعية البيانات المشفرة.mainKey (سلسلة نصية): المفتاح الرئيسي المستخدم للتشفير.timeKey (سلسلة نصية): مفتاح الوقت للتشفير.dataFiles (سلسلة نصية): مسار الملف المشفر.extraBytes (رقم، اختياري): البايتات الإضافية المستخدمة للتشفير.status (منطقي): false للإشارة إلى فشل فك التشفير.error_code (رقم): كود خطأ يشير إلى سبب فشل فك التشفير.message (سلسلة نصية): رسالة خطأ وصفية تشرح سبب فشل فك التشفير.| الكود | رسالة الخطأ | الوصف |
|---|
| 420 | تجاوز الحد الزمني لفك التشفير | استغرقت عملية فك التشفير وقتًا أطول من الحد الزمني المسموح به. |
| 444 | فشل فك التشفير | واجهت عملية فك التشفير خطأ. |
| 777 | لم يتم توفير بيانات | لم يتم توفير أي بيانات للعملية. |
| 859 | سلسلة نصية مشفرة غير صالحة لـ temcrypt | السلسلة النصية المقدمة ليست سلسلة مشفرة صالحة لـ temcrypt. |