最近的项目涉及到了要使用第三方开发的服务,而对方的代码是Java,而我习惯了用Golang去搭建服务,对方提出用RSA去加解密和签名验证(实际上我觉得只要服务器升级到了HTTPS就够了,不过也尊重对方选择)。
关于RSA加密和签名的原理可以参考,在这里就不再赘述了。
# Golang
Golang去支持RSA的话主要有两种
`
import java
`
# Java
还有一点我注意到的是,无论是在Java还是在Golang里边String和Byte array的转换是有多种格式的。比如说UTF-8或者Base64。不过是UTF-8是如何把Text文本(Unicode)转成Byte array,但是Base64是任何Byte array转成String,本质上是有差别的。
在Golang里边如何把string转成[]byte (Base64)
```
sign, err :=base64.StdEncoding.DecodeString(str)
```
在Golang里边如何把string转成[]byte (UTF-8)
```
```