分享一個本人的私密檔案加密方法:用php 對windows 上的自己的本地私密檔案進行加密。

vimkid發表於2021-05-12

由於經常要使用賬號密碼這些私密資訊太多又難以記住, 所以放到了桌面方便些,但是放到桌面直接開啟能看到,感覺非常不安全,因為裡面包含伺服器,mysql 登入等關鍵資訊。而網上那些加密軟體什麼的,總感覺有後門,不安心,不放心,於是自己用php寫了一個加密方法,分享出來給大家,程式碼如下。

加密程式碼 encrypt.php

<?php 

/**
 *  Description:  加密重要關鍵檔案, 執行加密會覆蓋原檔案,一定要做好備份, 一定要記得密碼,不記得密碼檔案將永久丟失
 *  Use:    php encript.php key  filename     (key 必傳入, filename 不傳預設為 secret )
 * 
 */
$key = isset($argv[1]) ? $argv[1] : '';
if(empty($key)) { 
  echo 'key can not be null';die;
}

$fileName = isset($argv[2]) ? $argv[2] : 'secret.txt';

$file = file_get_contents($fileName);
$file_encrypt = encrypt($file, $key);
file_put_contents($fileName, $file_encrypt);

function encrypt($data, $key)
{
    $key    =    md5($key);
    $x        =    0;
    $len    =    strlen($data);
    $l        =    strlen($key);
    for ($i = 0; $i < $len; $i++)
    {
        if ($x == $l)
        {
            $x = 0;
        }
        $char .= $key[$x];
        $x++;
    }
    for ($i = 0; $i < $len; $i++)
    {
        $str .= chr(ord($data[$i]) + (ord($char[$i])) % 256);
    }
    return base64_encode($str);
}

?>

解密程式碼 decript.php

<?php 
/**
 *  Description:  解密重要關鍵檔案
 *  Use:    php encript.php key filename     (key 必傳入, filename 不傳預設為 secret )
 * 
 */
$key = isset($argv[1]) ? $argv[1] : '';
if(empty($key)) { 
  echo 'key can not be null';die;
}

$fileName = isset($argv[2]) ? $argv[2] : 'secret.txt';

$file = file_get_contents($fileName);
$file_decrypt = decrypt($file, $key);
file_put_contents($fileName, $file_decrypt);

function decrypt($data, $key)
{
    $key = md5($key);
    $x = 0;
    $data = base64_decode($data);
    $len = strlen($data);
    $l = strlen($key);
    for ($i = 0; $i < $len; $i++)
    {
        if ($x == $l)
        {
            $x = 0;
        }
        $char .= substr($key, $x, 1);
        $x++;
    }
    for ($i = 0; $i < $len; $i++)
    {
        if (ord(substr($data, $i, 1)) < ord(substr($char, $i, 1)))
        {
            $str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1)));
        }
        else
        {
            $str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1)));
        }
    }
    return $str;
}

?>

描述

檔案加密後會變成一串可逆的加密的字串。

分享一個本人的私密檔案加密方法:用php 對windows 上的自己的本地私密檔案進行加密。

使用方法

加密: 加密時時使用以下命令進行加密,會對 filename.txt 進行加密

php encrypt.php yourPassword filename.txt

解密: 加密時時使用以下命令進行加密,會對 filename.txt 進行解密

php encrypt.php yourPassword filename.txt

檢視完以後,再執行一次 php encrypt.php yourPassword filename.txt 重新加密即可

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章