当前位置: 首页 > 面试题库 >

转到-如何从PublicKey生成SSH PublicKey指纹,PublicKey的类型可能是[rsa dsa ssh-rsa ssh-dss ecdsa]之一

马星阑
2023-03-14
问题内容

我只有一个PublicKey字符串,如何获得PublicKey指纹?我有一些想法表https://go-
review.googlesource.com/c/crypto/+/32814
,但是我不知道如何
实现ssh.PublicKey接口。


问题答案:

您可能要使用ssh包中的ssh.ParseAuthorizedKey来加载密钥:

https://godoc.org/golang.org/x/crypto/ssh#ParseAuthorizedKey

这将为您提供一个公共密钥,您可以将其称为ssh.FingerprintLegacyMD5以获取指纹(假设在这里您想要md5)。

https://godoc.org/golang.org/x/crypto/ssh#FingerprintLegacyMD5


https://godoc.org/golang.org/x/crypto/ssh#FingerprintSHA256

func main() {
    // Read a key from a file in authorized keys file line format
    // This could be an rsa.pub file or a line from authorized_keys
    pubKeyBytes := []byte(`ssh-rsa AAAABMYKEY...ABC me@myplace.local`)

    // Parse the key, other info ignored
    pk, _, _, _, err := ssh.ParseAuthorizedKey(pubKeyBytes)
    if err != nil {
        panic(err)
    }

    // Get the fingerprint
    f := ssh.FingerprintLegacyMD5(pk)

    // Print the fingerprint
    fmt.Printf("%s\n", f)
}

提供了两种指纹功能,不确定要使用哪一种。



 类似资料:
  • 我正在使用RSA算法生成公钥和私钥 然后使用Base64编码器对这些密钥进行编码,并将其保存到数据库中。

  • 我想在C#上创建检查消息签名的方法。我得到公钥数据,消息,签名,我有一个C示例。 C代码: 在C#中,我尝试: 但是我不知道我应该如何使用<code>和<code>的pubkey。如何将openkey添加到ECDsa。 我使用ECDsa.Create是因为我想有跨平台代码。 我尝试了但这用于ECDsaCng,它只使用Windows。 我可以使用< code>ECDsa。Create(ECParam

  • 问题内容: 我已经看到了许多类似的问题,但对我而言,没有任何效果。我只是想将从服务器检索到的PEM格式的RSA公钥转换为Android中的。谁能指出我正确的方向? 编辑:我已经成功使用以下代码将PEM转换为PublicKey,但是在编码消息后,我得到了意外的输出… 输出如下所示: 当我期望更接近: 我缺少某些格式或文件类型吗? 问题答案: 要回答我自己的问题…第一个输出为十六进制,第二个输出为ba

  • 问题内容: 我正在开发一个需要借助(NIST P-256,P-256,prime256v1)公钥来验证签名的应用程序。 公钥是由其他应用程序在较早的时间点生成的,并以十六进制编码存储在我的数据库中。十六进制字符串的格式等效于OpenSSL在调用以前由生成的文件时将生成的十六进制字符串。消息和签名是从其他应用程序接收的。考虑以下测试数据: 现在,这 应该 是有效的签名。 我的目标是使用Java和/或

  • 我正在开发一个应用程序,它需要在(NIST P-256,P-256,prime256v1)公钥的帮助下验证签名。 公钥是由一个不同的应用程序在较早的时间点生成的,并以十六进制编码存储在我的数据库中。这里的十六进制字符串的格式等效于OpenSSL在调用时生成的十六进制字符串,该文件以前是由生成的。消息和签名是从不同的应用程序接收的。考虑以下测试数据: 现在这应该是一个有效的签名。 我的目标是使用Ja

  • 我创建并使用RSA公钥/私钥来加密/解密一些消息,我将它们作为字符串存储到sharedpreferences中,当我需要它们时,我从字符串创建它们。一切工作都很完美,但是将我的私钥作为字符串存储在sharedpreferences中是否安全。带着这个问题: SharedPreferences模式_Private安全性 我了解到,有人可以访问我的sharedpreferences并可以从字符串生成我