目录
配置安装Homebrew
Arm版本:
方法一
- 插件Homebrew目录
sudo mkdir /opt/homebrew
- 同步brew.git库
下载brew.git库文件到 /opt/homebrew目录:
sudo git clone https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git /opt/homebrew
- 添加环境
使终端可以在任意位置调用Homebrew
创建软链接到系统:
sudo ln -sf /opt/homebrew/bin/brew /opt/homebrew/bin/brew
- 创建并同步Homebrew-core库
创建Homebrew-core目录,并git Homebrew-core库文件
sudo mkdir -p /opt/homebrew/Library/Taps/homebrew/homebrew-core
sudo git clone https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git /opt/homebrew/Library/Taps/homebrew/homebrew-core
- 创建并同步Homebrew- cask库
sudo mkdir -p /opt/homebrew/Library/Taps/homebrew/homebrew-cask
sudo git clone https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git /opt/homebrew/Library/Taps/homebrew/homebrew-cask
6.提权
sudo chown -R $(whoami) /opt/homebrew sudo chown -R $(whoami) /opt/homebrew/Cellar sudo chown -R $(whoami) /opt/homebrew/var/homebrew
- 查看
brew -v
方法二
脚本配置安装(安全性较低,但是简单方便)
/bin/bash -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
课上测试1
1.创建一个名为 sn.txt 的文件,并将8位学号写入该文件中
echo -n "20231301" > sn.txt
2.使用 SM3 算法计算学号的哈希值并将其存入 sn.sm3 文件中
openssl sm3 -binary -out sn.sm3 sn.txtt
3.使用 od 命令查看 sn.sm3 文件的内容
od -t x1 -An sn.sm3
- 使用 echo 命令打印学号,并使用 OpenSSL 工具计算哈希值,然后比较与文件中的哈希值是否一致。
echo -n "20231301" | openssl sm3 -binary | od -t x1 -An
课上测试2
1.使用 OpenSSL 工具产生两个16字节的随机数,并将它们分别保存到 key.bin 和 iv.bin 文件中。
openssl rand 16 > key.bin
openssl rand 16 > iv.bin
2.使用 SM4 算法将 sn.txt 文件加密,并将加密结果存入 sn.enc 文件中
openssl sm4 -in sn.txt -out sn.enc -e -K $(cat key.bin) -iv $(cat iv.bin)
3.使用 SM4 算法将 sn.enc 文件解密,并将解密结果存入 sn2.txt 文件中。
openssl sm4 -in sn.enc -out sn2.txt -d -K $(cat key.bin) -iv $(cat iv.bin)
4.使用 diff 命令比较 sn.txt 和 sn2.txt 文件的内容是否相同
diff sn.txt sn2.txt
如果 sn.txt 和 sn2.txt 的内容相同,该命令将不会输出任何信息。否则,它将显示两个文件之间的差异。
课上测试3
1.生成一对1024位的RSA公私钥对
2.导出公钥和私钥
已经在第一步中生成了private_key.pem和public_key.pem两个文件,它们分别包含了私钥和公钥。
3.使用私钥对sn.sm3文件进行签名并生成snsm3.sig文件
4.使用公钥对snsm3.enc文件进行验签并生成snsm3.veri文件
openssl dgst -verify public_key.pem -keyform pem -signature snsm3.sig -out snsm3.veri snsm3.enc
5.比较snsm3.veri和sn.sm3文件的内容是否一致
diff snsm3.veri sn.sm3
如果 snsm3.veri 和 sn.sm3 的内容相同,该命令将不会输出任何信息。否则,它将显示两个文件之间的差异。
openssl实践
1.A同学生成SM2公私钥对
openssl ecparam -genkey -name sm2 -out April.pem
openssl ec -in April.pem -pubout -out Apub.pem
2.B同学生成SM2公私钥对
openssl ecparam -genkey -name sm2 -out Bpri.pem
openssl ec -in Bpri.pem -pubout -out Bpub.pem
3.A、B同学互传公钥
4.A同学使用SM4算法对demo.txt加密得到Demo1,加密密钥为K
生成一个SM2私钥:
openssl rand -out sm4-key.bin 16
从私钥文件中提取SM2公钥:
openssl enc -sm4-ecb in demo.txt -out Demo1 -K $(xxd -p -c 16 <sm4-key.bin)
5.A同学使用B同学的公钥Bpub对K进行加密得到K1,并使用自己的私钥Apri对K1进行签名得到K2,然后将K2和Demo1发送给B
6.B同学使用A同学的公钥Apub对K2进行验签得到K1,并使用自己的私钥Bpri对K1进行解密得到K
7.B同学使用K对Demo1进行解密得到demo1.txt,并查看demo1内容是否正确