golang 实现md5
时间: 2023-07-26 10:29:45 浏览: 43
在Golang中,可以使用`crypto/md5`标准库实现MD5哈希。下面是一个简单的示例代码:
```go
package main
import (
"crypto/md5"
"encoding/hex"
"fmt"
)
func main() {
str := "hello world"
hash := md5.Sum([]byte(str))
md5str := hex.EncodeToString(hash[:])
fmt.Println(md5str)
}
```
首先,将要进行哈希的字符串转换为字节数组,并将其传递给`md5.Sum`方法进行哈希。接下来,通过`hex.EncodeToString`方法将哈希结果转换为十六进制字符串。最后输出该字符串即可。
相关问题
golang sftp MD5
你可以使用Go语言的github.com/pkg/sftp包来连接SFTP服务器并计算文件的MD5值。以下是一个示例代码:
```go
package main
import (
"crypto/md5"
"fmt"
"github.com/pkg/sftp"
"golang.org/x/crypto/ssh"
"io"
"os"
)
func main() {
// SFTP服务器的地址和端口号
host := "example.com"
port := 22
// SFTP服务器的用户名和密码
user := "username"
pass := "password"
// 要计算MD5值的文件路径
path := "/path/to/file.txt"
// 连接SFTP服务器
sshConfig := &ssh.ClientConfig{
User: user,
Auth: []ssh.AuthMethod{
ssh.Password(pass),
},
}
sshConn, err := ssh.Dial("tcp", fmt.Sprintf("%s:%d", host, port), sshConfig)
if err != nil {
fmt.Println("Error while connecting to SFTP server:", err)
return
}
defer sshConn.Close()
sftpClient, err := sftp.NewClient(sshConn)
if err != nil {
fmt.Println("Error while creating SFTP client:", err)
return
}
defer sftpClient.Close()
// 打开要计算MD5值的文件
f, err := sftpClient.Open(path)
if err != nil {
fmt.Println("Error while opening file:", err)
return
}
defer f.Close()
// 计算MD5值
h := md5.New()
if _, err := io.Copy(h, f); err != nil {
fmt.Println("Error while calculating MD5:", err)
return
}
// 输出MD5值
fmt.Printf("MD5 of file %s on %s: %x\n", path, host, h.Sum(nil))
}
```
你需要将`host`、`port`、`user`、`pass`和`path`变量替换成对应的值。然后你可以运行这个程序并连接SFTP服务器,打开文件,计算MD5值并输出。
golang 编写MD5算法
在 Golang 中编写 MD5 算法,可以使用 `crypto/md5` 包。下面是一个示例代码:
```go
package main
import (
"crypto/md5"
"fmt"
)
func main() {
str := "hello world"
data := []byte(str)
hash := md5.Sum(data)
fmt.Printf("MD5(%s)=%x\n", str, hash)
}
```
首先将要加密的字符串转换成字节数组,然后调用 `md5.Sum()` 函数进行加密,最后将加密结果转换为十六进制字符串输出。