无锡 学校网站建设,手机套 东莞网站建设,山西p2p网站建设,企业网站公司单位有哪些本文将基于 铜锁#xff08;tongsuo#xff09;开源基础密码库实现前端对用户登录密码的加密#xff0c;从而实现前端隐私数据的保密性。
首先#xff0c;铜锁密码库是一个提供现代密码学算法和安全通信协议的开源基础密码库#xff0c;在中国商用密码算法#xff0c;例…本文将基于 铜锁tongsuo开源基础密码库实现前端对用户登录密码的加密从而实现前端隐私数据的保密性。
首先铜锁密码库是一个提供现代密码学算法和安全通信协议的开源基础密码库在中国商用密码算法例如 SM2、SM3、SM4、祖冲之等密码算法方面提供强大的能力。除此之外对国际主流算法、同台加密算法等密码学也提供了功能。更多详细的功能请参考官方文档。
接下来我会在 docker 环境中基于 Ubuntu 20.04 容器镜像结合 nodejs 实现对用户登录密码的加密。
安装 docker
首先请先下载并安装 docker。点击链接转到下载地址。
我使用的是 macOS 系统因此我这里选择的是 macOS 版本的 docker。请根据自身系统选择相应的版本。 安装 docker 成功之后打开你的命令行工具并执行如下命令创建一个 docker 容器
docker run -d -it --name tongsuolab ubuntu:20.04 bash上述代码中创建了一个名为 tongsuolab 的 ubuntu20.04 容器如下图所示 此时打开 docker 的应用程序你也能在 docker 的 Containers 页面中找到 接着继续在命令行中执行如下命令进入 docker 容器
docker exec -it tongsuolab bash至此你就将 docker 的安装成功并成创建容器。
下载铜锁密码库
我们将在容器中下载同事密码库。因为 ubuntu 自带 apt 命令因此可以用过 apt 命令安装 git 命令下载铜锁密码库并通过 make 命令编译它。
现在我们先更新软件包索引执行如下命令
apt update接着安装 git gcc, make, nodejs 开发工具
apt install git gcc make -y现在我们已经安装好了 git 工具。因此可以使用 git 命令克隆铜锁密码库的代码执行如下命令
git clone https://github.com/Tongsuo-Project/Tongsuo接着对铜锁密码库进行一些配置进入到 Tongsuo 文件夹下执行如下命令
cd Tongsuo
./config --prefix/opt/tongsuo enable-ntls enable-ssl-trace -Wl,-rpath,/opt/tongsuo/lib64
--debug最后执行如下命令进行编译和安装
make -j
make install至此你就将铜锁密码库成功安装了。你也可以通过如下命令查看安装情况
ls -l /opt/tongsuo以及通过 /opt/tongsuo/bin/tongsuo version 命令查看铜锁密码库的版本
编写前端代码
安装开发环境
在前端中我们将通过 nodejs 实现对用户登录密码的加密。本文中我们将使用 SM3 和 SM4 两种方式进行演示。
由于 ubuntu20.04 版本中没有安装 NodeJS因此我们还需要通过 apt 命令安装执行如下命令
apt install nodejs
node -v
v10.19.0
apt install npm
npm -v但是在 ubuntu20.04 中 nodejs 的最高版本被限制在了 10.19.0 不是最新的版本。因此我们还需要更新 nodejs 的版本。
通过以下命令对 nodejs 的版本进行更新
apt install curlnpm install n -gn stable当你执行 n stable 命令的时候会提示 the node command changed location and the old location may be remembered in your current shell.
它的意思是虽然 nodejs 新版本安装了但是系统记住的还是老版本的 nodejs。
这个时候只需要执行下面这条命令即可切换为 新版本的 nodejs:
hash -r到了这里你已经成功底安装了前端需要的环境。但是我们还需要编辑文件因此还需要安装 vim 工具执行如下命令
apt install vim编写代码
现在我们来开始编写代码。要在前端中执行 shell 语句一般通过第三方依赖包执行更方便这里推荐使用 shelljs。
现在在命令行中创建一个名为 webapp 的文件夹
mkdir webapp接着进入到 webapp 文件夹中通过 vim 命令创建并编辑 index.js 文件
vim index.js此时会在命令行中打开 index.js然后我们输入如下内容 上述代码中可以看到我们使用 shelljs 来执行铜锁密码库的 sm3 和 sm4 加密。但是现在你还运行不了 index.js或者说运行了会报错。因为我们还没有安装 shelljs 依赖库。
因此在 webapp 文件夹下执行如下命令安装 shelljs
// 初始化 package.json 文件
npm init -y
// 安装 shelljs
npm install shelljs安装成功后我们再再 webapp 文件夹中执行如下命令执行 index.js
node index.js此时你会发现命令行中输入了如下结果表示我们成功借助铜锁密码库对用户的登录密码进行了加密。