分享一个本人的私密文件加密方法:用php 对windows 上的自己的本地私密文件进行加密。

php 对windows 上的自己的本地私密文件进行加密。

由于经常要使用账号密码这些私密信息太多又难以记住, 所以放到了桌面方便些,但是放到桌面直接打开能看到,感觉非常不安全,因为里面包含服务器,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 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 4
终生学习者

给你推荐一个专业 开源的 PGP 自己搜索一下

2年前 评论
vimkid (楼主) 2年前

为啥不自己搭建密码管理工具呢 比如: Bitwarden

2年前 评论
vimkid (楼主) 2年前
vimkid (楼主) 2年前
arukas 2年前

密码学有一个说法,不要使用未公开的自创的加密方式

2年前 评论
vimkid (楼主) 2年前
vimkid (楼主) 2年前
vimkid (楼主) 2年前

这跟你压缩包设个密码有啥区别

2年前 评论
vimkid (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!