非对称密码体制

非对称密码加密密钥和解密密钥不相同,一个公开,一个保密。公开的称为公钥,保密称为私钥

        在非对称密码体制中,公钥和私钥都可以用于加密与解密操作,公钥加密则需要私钥解密,私钥加密则需要公钥解密。非对称密码体制的主要优点是可以适应开放性的使用环境,可以方便安全的实现数字签名和验证。除此之外,非对称密码体制还支持数字信封等技术。

 

DH:第一个密钥协商算法,使双方可以在安全的条件下交换密钥,仅用于秘钥分配不能加密或解密消息。

重点:乙方使用甲方公钥作为参数,否则无法保证甲乙双方获得同一个秘密密钥。

RSA:最典型的非对称 加密算法,既可用于数据加解密也可用于数字签名

ECC:椭圆曲线加密算法,通过椭圆曲线方程式的性质产生密钥,创建密钥时更快更小更有效。

 

X509EncodedKeySpecPKCS8EncodedKeySpec两个类在加密解密环节中经常会用到。密钥很可能会以二进制方式存储于文件中,由程序来读取。这时候,就需要通过这两个类将文件中的字节数组读出转换为密钥对象。

 // 取得私钥
        PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(keyBytes);
        KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);
        Key privateKey = keyFactory.generatePrivate(pkcs8KeySpec);


 // 取得公钥
        // 构造X509EncodedKeySpec对象
        X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes);
        // KEY_ALGORITHM 指定的加密算法
        KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);
        // 取公钥匙对象
        PublicKey pubKey = keyFactory.generatePublic(keySpec);

 简要总结一下,使用公钥加密、私钥解密,完成了乙方到甲方的一次数据传递,通过私钥加密、公钥解密,同时通过私钥签名、公钥验证签名,完成了一次甲方到乙方的数据传递与验证,两次数据传递完成一整套的数据交互

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值