Write the Code. Change the World.

11月 27

将代码给到客户端的时候,有时候不想让源码被对方看到。就得使用加密的方式。这里尝试 Laravel Source Encrypter

https://github.com/SiavashBamshadnia/Laravel-Source-Encrypter

安装配置扩展

  1. 先去下载 phpbolt 扩展。对方提供了到 php8.2 的扩展,支持 win、linux、mac 的。

https://phpbolt.com/download-phpbolt/

打开上边的地址,输入您的 email 以及用户名,点击提交。他们会把文件下载链接发到邮箱里。下载出来就好。

  1. 安装 - 查看扩展的存放位置。 这里先尝试在 homestead 环境下安装。
# 查看 php 版本,了解当前的 php 版本信息 
php -v 

# 查看扩展的位置
php -i | grep extension_dir

# 这里是这样的
extension_dir => /usr/lib/php/20220829 => /usr/lib/php/20220829
sqlite3.extension_dir => no value => no value
  1. 安装 - 将 phpbolt.so 文件复制到该目录下。
# 在本地,将扩展文件放到映射的 code 目录下。方便移动。
cd /usr/lib/php/20220829
sudo mv ~/code/bolt.so ./
  1. 修改 php.ini 文件,重新启动。
php -i |grep php.ini
# 输出
# Loaded Configuration File => /etc/php/8.2/cli/php.ini

# vim 打开 php.ini 文件
sudo vim /etc/php/8.2/cli/php.ini
# 移动到末尾
GG
# i 进入编辑模式,加入下边的配置
extension=bolt.so

# 保存退出
:wq

# 重启 php-fpm
sudo /etc/init.d/php8.2-fpm restart

# 查看扩展
php -m | grep bolt

通过 php -m | grep bolt 的确是可以看见 bolt 扩展的存在。但是呢,如果通过 http 服务,访问获取 bolt,是没有看到 bolt 的信息的。这个时候,使用 bolt 的函数就会报错。如下。

Call to undefined function bolt_decrypt() in

其实, bolt 的扩展还没完。我们继续配置。

cd /etc/php/8.2/fpm/conf.d

sudo vim 20-bolt.ini

# 添加一下内容,保存退出
extension=bolt.so

# 重启
sudo /etc/init.d/php8.2-fpm restart

再看看 phpinfo 信息,这个时候就有了

安装和使用 Laravel-Source-Encrypter

扩展装好了,那么就要用在项目中。这里我新建一个新的 laravel 项目来搞。当前 laravel 版本是 laravel 10, php 版本是 8.2 。

composer create-project laravel/laravel bolt.com --prefer-dist

cd bolt.com

项目创建好了之后,就按照 https://github.com/SiavashBamshadnia/Laravel-Source-Encrypter 来就可以了。

最后,将打包好的文件(默认 encrypted 下的)替换掉之前的文件。

这样就可以了。

感觉还是蛮方便好用的。

加密后的代码,如下边这样的。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注