首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

加密 | crypto

  • import "crypto"
  • 概述
  • 索引
  • 子目录

概述

加密包收集常用的密码常量。

索引

  • func RegisterHash(h Hash, f func() hash.Hash)
  • type Decrypter
  • type DecrypterOpts
  • type Hash
    • func (h Hash) Available() bool
    • func (h Hash) HashFunc() Hash
    • func (h Hash) New() hash.Hash
    • func (h Hash) Size() int
  • func (h Hash) Available() bool
  • func (h Hash) HashFunc() Hash
  • func (h Hash) New() hash.Hash
  • func (h Hash) Size() int
  • type PrivateKey
  • type PublicKey
  • type Signer
  • type SignerOpts

文件包

func RegisterHash(查看源代码)

代码语言:javascript
复制
func RegisterHash(h Hash, f func() hash.Hash)

RegisterHash 注册一个函数,该函数返回给定散列函数的新实例。这是打算从实现散列函数的包中的 init 函数调用的。

type Decrypter(查看源代码)

Decrypter 是一个不透明私钥的接口,可用于非对称解密操作。一个例子是保存在硬件模块中的 RSA 密钥。

代码语言:txt
复制
type Decrypter interface {
        // 公开返回与不透明对应的公钥,
        // 私钥。
        Public() PublicKey

        // 解密解密消息。 opts的论点应该适合于
        // 使用的原语。 请参阅每个实现中的文档
        // 细节。
        Decrypt(rand io.Reader, msg []byte, opts DecrypterOpts) (plaintext []byte, err error)
}

type DecrypterOpts(查看源代码)

代码语言:javascript
复制
type DecrypterOpts interface{}

哈希标识在另一个包中实现的加密哈希函数。

代码语言:javascript
复制
type Hash uint
代码语言:txt
复制
const (
        MD4         Hash = 1 + iota // 输入 golang.org/x/crypto/md4
        MD5                         // 输入 crypto/md5
        SHA1                        // 输入 crypto/sha1
        SHA224                      // 输入 crypto/sha256
        SHA256                      // 输入 crypto/sha256
        SHA384                      // 输入 crypto/sha512
        SHA512                      // 输入 crypto/sha512
        MD5SHA1                     // 没有执行; 用于TLS RSA的MD5+SHA1
        RIPEMD160                   // 输入 golang.org/x/crypto/ripemd160
        SHA3_224                    // 输入 golang.org/x/crypto/sha3
        SHA3_256                    // 输入 golang.org/x/crypto/sha3
        SHA3_384                    // 输入 golang.org/x/crypto/sha3
        SHA3_512                    // 输入 golang.org/x/crypto/sha3
        SHA512_224                  // 输入 crypto/sha512
        SHA512_256                  // 输入 crypto/sha512
        BLAKE2s_256                 // 输入 golang.org/x/crypto/blake2s
        BLAKE2b_256                 // 输入 golang.org/x/crypto/blake2b
        BLAKE2b_384                 // 输入 golang.org/x/crypto/blake2b
        BLAKE2b_512                 // 输入 golang.org/x/crypto/blake2b

)

func (Hash) Available(查看源代码)

代码语言:javascript
复制
func (h Hash) Available() bool

可用报告是否将给定的散列函数链接到二进制文件中。

func (Hash) HashFunc(查看源代码)

代码语言:javascript
复制
func (h Hash) HashFunc() Hash

HashFunc 只是返回 h 的值,以便 Hash 实现 SignerOpts。

func (Hash) New(查看源代码)

代码语言:javascript
复制
func (h Hash) New() hash.Hash

New 返回一个新的 hash.Hash 计算给定的散列函数。如果哈希函数没有链接到二进制文件中,则将产生恐慌。

func (Hash) Size(查看源代码)

代码语言:javascript
复制
func (h Hash) Size() int

Size 返回由给定散列函数产生的摘要的长度(以字节为单位)。它并不要求将有问题的散列函数链接到程序中。

type PrivateKey(查看源代码)

PrivateKey 使用未指定的算法表示私钥。

代码语言:javascript
复制
type PrivateKey interface{}

type PublicKey(查看源代码)

PublicKey 使用未指定的算法表示公钥。

代码语言:javascript
复制
type PublicKey interface{}

Signer 是可用于签名操作的不透明私钥的接口。例如,一个 RSA 密钥保存在硬件模块中。

代码语言:txt
复制
type Signer interface {
        // 公开返回与不透明对应的公钥,
        // 私钥。
        Public() PublicKey

        // 使用私钥签名标志摘要,可能使用熵
        // rand. 对于RSA密钥,结果签名应该是一个
        // PKCS#1 v1.5 或  PSS signature (如opts所示)。 对于(EC)DSA
        // 密钥,它应该是DER序列化的ASN.1签名结构。
        //
        // 哈希实现 SignerOpts 接口,在大多数情况下,可以
        // 只需传入用作 opts 的散列函数即可。 标志也可能会尝试
        // 输入 assert opts 到其他类型以获得算法
        // 具体的值。 有关详细信息,请参阅每个包中的文档。
        //
        // 请注意,当需要较大消息的散列签名时,
        // 调用者负责散列较大的消息并传递
        // 散列(作为摘要)和散列函数(作为opts)来标记。
        Sign(rand io.Reader, digest []byte, opts SignerOpts) (signature []byte, err error)
}

type SignerOpts(查看源代码)

SignerOpts包含用签名者签名的选项。

代码语言:txt
复制
type SignerOpts interface {
        // HashFunc返回用于生成的哈希函数的标识符
        // 该消息传递给Signer.Sign,否则为0表示不
        // 哈希完成。
        HashFunc() Hash
}

子目录

路径

概要

aes

按照美国的定义,aes实现AES加密(以前称为Rijndael)

cipher

包密码实现了标准块密码模式,可以围绕低级块密码实现。

des

Package?des实现了美国定义的数据加密标准(DES)和三重数据加密算法(TDEA)

dsa

软件包dsa实现了FIPS?186-3中定义的数字签名算法。

ecdsa

软件包ecdsa实现了FIPS?186-3中定义的椭圆曲线数字签名算法。

elliptic

椭圆包椭圆实现了在素数域上的几个标准椭圆曲线。

hmac

包hmac实现美国定义的Keyed-Hash消息认证码(HMAC)

internal/cipherhw

包cipherhw公开了用于检测是否存在对某些密码和认证器的硬件支持的常用功能。

md5

包md5实现了RFC?1321中定义的MD5哈希算法。

rand

Package?rand实现了一个密码安全的伪随机数生成器。

rc4

软件包rc4实现了RC4加密,如Bruce?Schneier的应用密码术中所定义。

rsa

软件包rsa按照PKCS#1中的规定实现RSA加密。

sha1

包sha1实现了RFC?3174中定义的SHA-1哈希算法。

sha256

软件包sha256实现FIPS?180-4中定义的SHA224和SHA256哈希算法。

sha512

软件包sha512实现FIPS?180-4中定义的SHA-384,SHA-512,SHA-512/224和SHA-512/256哈希算法。

subtle

包微妙地实现了在密码学中经常使用的功能,但需要仔细考虑才能正确使用。

tls

按照RFC?5246的规定,软件包部分实现了TLS?1.2。

x509

软件包x509分析X.509编码的密钥和证书。

x509/pkix

包pkix包含用于ASN.1解析和序列化X.509证书,CRL和OCSP的共享低级别结构。

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com