©
本文档使用 PHP中文网手册 发布
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
crypto.go
func RegisterHash(h Hash, f func() hash.Hash)
RegisterHash 注册一个函数,该函数返回给定散列函数的新实例。这是打算从实现散列函数的包中的 init 函数调用的。
Decrypter 是一个不透明私钥的接口,可用于非对称解密操作。一个例子是保存在硬件模块中的 RSA 密钥。
type Decrypter interface { // 公开返回与不透明对应的公钥, // 私钥。 Public() PublicKey // 解密解密消息。 opts的论点应该适合于 // 使用的原语。 请参阅每个实现中的文档 // 细节。 Decrypt(rand io.Reader, msg []byte, opts DecrypterOpts) (plaintext []byte, err error)}
type DecrypterOpts interface{}
哈希标识在另一个包中实现的加密哈希函数。
type Hash uint
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 (h Hash) Available() bool
可用报告是否将给定的散列函数链接到二进制文件中。
func (h Hash) HashFunc() Hash
HashFunc 只是返回 h 的值,以便 Hash 实现 SignerOpts。
func (h Hash) New() hash.Hash
New 返回一个新的 hash.Hash 计算给定的散列函数。如果哈希函数没有链接到二进制文件中,则将产生恐慌。
func (h Hash) Size() int
Size 返回由给定散列函数产生的摘要的长度(以字节为单位)。它并不要求将有问题的散列函数链接到程序中。
PrivateKey 使用未指定的算法表示私钥。
type PrivateKey interface{}
PublicKey 使用未指定的算法表示公钥。
type PublicKey interface{}
Signer 是可用于签名操作的不透明私钥的接口。例如,一个 RSA 密钥保存在硬件模块中。
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)}
SignerOpts包含用签名者签名的选项。
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的共享低级别结构。 |