干货|golang实现非对称加密技术实践

Posted 中兴开发者社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了干货|golang实现非对称加密技术实践相关的知识,希望对你有一定的参考价值。

每天读一篇一线开发者原创好文

▍作者简介

作者李增辉是具有多年经验的软件开发者,目前致力于公司级PaaS平台组件开发工作,参与方案设计和实现。这篇文章是非对称加密技术在paas应用过程中实践总结,通过本文可以了解非对称机密技术原理,加密算法以及其在golang中的具体实现。


非对称加密(Asymmetric Cryptography)

非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。

私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。

非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。

比如,你向银行请求公钥,银行将公钥发给你,你使用公钥对消息加密,那么只有私钥的持有人--银行才能对你的消息解密。

与对称加密不同的是,银行不需要将私钥通过网络发送出去,因此安全性大大提高。

目前最常用的非对称加密算法是RSA算法,是Rivest, Shamir, 和Adleman于1978年发明。


流程分析:

1.Bob构建密钥对儿,将公钥公布给Alice,将私钥保留。

2.Alice使用公钥加密数据,向Bob发送经过加密后的数据;Bob获得加密数据,通过私钥解密。反之亦然。

干货|golang实现非对称加密技术实践

golang中也有RSA算法,请看下面的例子:

干货|golang实现非对称加密技术实践

干货|golang实现非对称加密技术实践

干货|golang实现非对称加密技术实践

既然是非对称加密当然需要公钥和私钥,公钥私钥如何生成呢?请看下面示例:

干货|golang实现非对称加密技术实践

干货|golang实现非对称加密技术实践

虽然非对称加密很安全,但是和对称加密比起来,它速度却比较慢,所以我们还是需要权衡使用加密方式,已达到安全传输目的。

以上是关于干货|golang实现非对称加密技术实践的主要内容,如果未能解决你的问题,请参考以下文章

golang 中,非对称加密的实现

区块链干货放送!非对称加密对医疗健康应用的意义

技术干货丨如何使对称加密“不对称”

非对称加密的RSA算法如何通过golang来实现?

golang:常用加密算法学习总结之非对称加密

《第九区干货》第22期:什么是非对称加密?