关于加解密、加签、验签等

目录

1.密码学常用术语: 

2.加签、验签

3.私钥、公钥、证书

4.根据证书获取证书序列号等相关代码


为了确保数据传输和数据存储的安全,我们可以通过特定的算法,将数据明文加密成复杂的密文。

1.密码学常用术语:

  • 明文:未加密的数据
  • 密文:明文经过加密后的数据
  • 加密:将明文转换为密文的过程
  • 解密:将密文转换为明文的过程
  • 加密算法:将明文转换为密文的转换算法
  • 解密算法:将密文转换为明文的转换算法
  • 加密密钥:用于加密算法进行加密操作的密钥,密钥分为对称密钥和非对称密钥
  • 解密密钥:用于解密算法进行解密操作的密钥,密钥分为对称密钥和非对称密钥
  • 密钥对:在非对称加密技术中,有两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的。

2.加签、验签

  • 「加签」:用Hash函数把原始报文生成报文摘要,然后用私钥对这个摘要进行加密,就得到这个报文对应的数字签名。通常来说呢,请求方会把「数字签名和报文原文」一并发送给接收方。
  • 「验签」:接收方拿到原始报文和数字签名后,用「同一个Hash函数」从报文中生成摘要A。另外,用对方提供的公钥对数字签名进行解密,得到摘要B,对比A和B是否相同,就可以得知报文有没有被篡改过。
  • 比如A和B都有一套自己的公钥和私钥,当A要给B发送消息时,先用B的公钥对消息加密,再对加密的消息使用A的私钥加签名,达到既不泄露也不被篡改,更能保证消息的安全性。

3.私钥、公钥、证书

  • 私钥:解密、加签
  • 机构向银联发送报文时,使用机构私钥做签名,银联收到报文后,使用机构公钥验签。
  • 私钥:用来解密公钥加密的数据。
  • 公钥:加密、验签
  • 银联向机构发送报文时,使用银联私钥做签名,机构收到报文后,使用银联公钥验签。 
  • 公钥:公钥用来给数据加密,用公钥加密的数据只能使用私钥解密

  • 证书:包含 公钥、公钥的主体、证书签发机构(CA)。用来保证公钥就是公钥主体的,防止公钥伪造的问题。

4.根据证书获取证书序列号等相关代码

// 1、加载公钥文件-读取公钥串
	@Test
	public void loadPublicCert() {
		FileInputStream inputStream = null;
		try {
			inputStream = new FileInputStream("d:\\zhengshu\\1111.cer");
            CertificateFactory cff = CertificateFactory.getInstance("X.509","BC");
			X509Certificate publicCert = (X509Certificate) cff.generateCertificate(inputStream);
			System.out.println("证书序列号:" + publicCert.getSerialNumber().toString(16));
			System.out.println("证书DN:" + publicCert.getSubjectDN());
			System.out.println("证书有效日期(开始):" + publicCert.getNotBefore());
			System.out.println("证书有效日期(截止):" + publicCert.getNotAfter());
			System.out.println("公钥信息:" + Base64.toBase64String(publicCert.getEncoded()));
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (inputStream != null) {
				try {
					inputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值