السلام عليكم ورحمة الله و بركاته،

أحيانا يحتاج البعض منا تشفير بيانات مهمة وتخزينها في قاعدة البيانات يتم التشفير/فك التشفير عبر كلمة مرور

مثال لدالتين أستخدمهما [PHP] من مدة، وكتبت مثلهما بالجافاسكربت أيضا

function encode($string,$key) {
    $key = sha1($key);
    $strLen = strlen($string);
    $keyLen = strlen($key);
    $j = 0;
    $hash = '';
    for ($i = 0; $i < $strLen; $i++) {
        $ordStr = ord(substr($string,$i,1));
        if ($j == $keyLen) { $j = 0; }
        $ordKey = ord(substr($key,$j,1));
        $j++;
        $hash .= strrev(base_convert(dechex($ordStr + $ordKey),16,36));
    }
    return $hash;
}

هذا نموذج عن تشفير كلمة ABCDEFG مع كلمة المرور 123456789 المُخرج : n4d3m4b3n4p4c3

وهذا نموذج عن تشفير كلمة ABCDEFG مع كلمة المرور 123 المُخرج : 9363l4o493a3c3

ويمكن استرجاع المحتوى مع نفس كلمة المرور بدالة مثل

function decode($string,$key) {
    $key = sha1($key);
    $strLen = strlen($string);
    $keyLen = strlen($key);
    $j = 0;
    $hash = '';
    for ($i = 0; $i < $strLen; $i+=2) {
        $ordStr = hexdec(base_convert(strrev(substr($string,$i,2)),36,16));
        if ($j == $keyLen) { $j = 0; }
        $ordKey = ord(substr($key,$j,1));
        $j++;
        $hash .= chr($ordStr - $ordKey);
    }
    return $hash;
}

طبعا يمكن الإبداع في طرق التشفير وزيادة القوة باستخدام دوال HEX أخرى

لكن يبقى السؤال هو : هل يمكن فك تشفير مثل هكذا تشفير بدون كلمة مرور ؟