首页 > 其他分享 >OpenSSL(系列)

OpenSSL(系列)

时间:2023-12-24 18:11:50浏览次数:26  
标签:bin git 系列 openssl OpenSSL sn homebrew txt

目录

配置安装Homebrew

Arm版本:

方法一

  1. 插件Homebrew目录
    sudo mkdir /opt/homebrew
  2. 同步brew.git库
    下载brew.git库文件到 /opt/homebrew目录:
    sudo git clone https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git /opt/homebrew
  3. 添加环境
    使终端可以在任意位置调用Homebrew
    创建软链接到系统:
    sudo ln -sf /opt/homebrew/bin/brew /opt/homebrew/bin/brew
  4. 创建并同步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
  5. 创建并同步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
  6. 查看
    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

  1. 使用 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内容是否正确

标签:bin,git,系列,openssl,OpenSSL,sn,homebrew,txt
From: https://www.cnblogs.com/twilight0966/p/17923971.html

相关文章

  • 模拟集成电路设计系列博客——4.4.4 Q因子修调
    4.4.4Q因子修调在一些需要高速或者高度选择的滤波器中,非理想的积分器效应和寄生参数使得电路需要对积分器的极点进行Q因子修调。尽管我们之前讨论过如何通过修调单独的时间常数使得集成滤波器的的因子达到百分之1以内的误差,当\(Q>1\)时,即使Q因子上有微小的误差也可能会在滤波器......
  • 模拟集成电路设计系列博客—— 4.4.3 频率修调
    4.4.3频率修调如果有精确的时钟的话,那么可以精确的修调\(G_m/C_A\)。例如,假设设计者有一个精确的时钟频率,称为\(f_{clk}\),那么一种使用开关电容电路进行修调的方式如下图所示[Viswanathan,1982]:这个修调电路与我们上一节介绍的固定跨导修调电路很像,除了外部电阻被更换为了一个......
  • OpenSSL课上测试3
    1.基于RSA算法产生一对1024位的公私钥对2.导出公钥和私钥生成一个私钥将公钥从私钥中提取其中private_key.pem是私钥,public_key.pem是公钥3.用私钥对sn.sm3文件进行签名得到snsm3.sig文件4.用公钥对snsm3.enc验签得到snsm3.veri文件5.比较snsm3.veri和sn.sm3......
  • React系列:react项目的创建到可以编写业务的一些列初始化
    ......
  • OpenSSL课上测试2
    1.用OpenSSL的rand命令产生两个16字节的随机数2.分别把上面两个随机数作为密钥和初始向量用sm4算法对8位学号文件sn.txt加密得到sn.enc3.用sm4算法解密sn.enc得到sn2.txt4.用diff命令比较sn2.txt和sn.txt的内容是否一致如图所示,输出值为空,表明二者一致。......
  • OpenSSL课上测试1
    0.参考https://www.cnblogs.com/rocedu/p/14891816.html#opensslgmssl-tassl1.把你的8位学号存入sn.txt文件中2.用sm3算法计算你的学号的hash值并把hash存入sn.sm3文件中3.用od命令查看sn.sm3中的内容4.用echo打印你的学号并用sm3计算hash值,确保两种方法产生的hash......
  • java接口自动化系列(06):常用变量解析到map
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/15867903.html添加工具类常用变量解析到map,方便后面解析初始化sql或者入参的时候对变量进行替换。VariableUtil.javapackagecom.qzcsbj.autotest.utils;importcom.qzcsbj.autotest.entity.Variable;import......
  • 模拟集成电路设计系列博客—— 4.4.2 固定跨导电路修调
    4.4.2固定跨导电路修调如之前所讨论,如果不使用修调,比值\(G_m/C\)可能会有百分之30的误差。然而,集成电容的误差一般在这百分之30的误差中只贡献百分之10。因此,对于能够容忍百分之10误差的应用,可以通过一个固定外部电阻来设置\(G_m\)值,如接下来我们所看到的,修调一个\(G_m\)值并不......
  • java接口自动化系列(05):测试数据注入到测试方法
     注入测试数据这里我们是数据驱动方式,把数据注入到测试方法上一篇我们已经把用例数据封装到对象并放到list中,这里我们把用例对象list中的对象分别放到Object类型的一维数组中,再把一维数组添加到新对象类型一维数组的list中然后我们在测方法中打印获取到的用例数据,看获取到的......
  • 模拟集成电路设计系列博客—— 4.4.1 修调概述
    4.4.1修调概述如之前所说,连续时间滤波器的一个缺点是需要额外的修调电路。这是因为由于时间常数会因为工艺偏差而产生大的波动。例如,集成电容可能会有百分之10的偏差,而电阻和跨导可能会有约百分之20的偏差。由于这些组件的构建非常不同,RC或者\(Gm/C\)时间常数积由于工艺偏差可能......