Cryptdb的代码托管在github上 https://github.com/CryptDB/cryptdb ,clone下来之后,运行ruby写的安装脚本,这里需要注意运行脚本的时候第一个参数要输入cryptdb的安装路径。
git clone https://github.com/CryptDB/cryptdbcd cryptdbsudo ./scripts/install.rb ~/cryptdb安装完成之后需要写一个环境变量EDBDIR
在该文件的末尾加上cryptdb的安装路径,根据实际情况替换
export EDBDIR=/home/liuyueyi/cryptdb至此,安装就完成了,重启庆祝一下。
cryptdb默认的登陆口令是letmein
,和MySQL的root
不同,要想将两者同时使用,还要改一下cryptdb的默认口令。 修改wrapper.lua
文件
打开之后,找到read_auth()
函数,其中有一行是
将letmein
改成root
就可以了。
改完之后,要重新make一次,回到cryptdb的根目录,执行make。
为了明显的看到效果,我们需要准备3个命令行窗口。
窗口1,用于运行cryptdb窗口2,用于从代理端口3307访问数据库窗口3,用于从正常端口3306访问数据库窗口1,运行下列指令,注意替换路径
/home/liuyueyi/cryptdb/bins/proxy-bin/bin/mysql-proxy --plugins=proxy --event-threads=4 --max-open-files=1024 --proxy-lua-script=$EDBDIR/mysqlproxy/wrapper.lua --proxy-address=127.0.0.1:3307 --proxy-backend-addresses=localhost:3306窗口2,运行下列指令
mysql -u root -p -h 127.0.0.1 -P 3307窗口3,运行下列指令
mysql -u root -p -h 127.0.0.1 -P 3306最终的效果应当是: 在窗口2中执行的数据库指令,会同步显示在窗口1中,并且可以看到cryptdb对指令做了哪些修改,修改的原理论文里面已经有所说明。
从窗口2查询的数据看到的都是明文
从窗口3查询的数据看到的都是密文
截图如下: 窗口2指令及其返回结果 窗口1显示的信息
窗口3指令及其返回结果
新闻热点
疑难解答