directory search
archive archive/tar archive/zip bufio bufio(缓存) builtin builtin(内置包) bytes bytes(包字节) compress compress/bzip2(压缩/bzip2) compress/flate(压缩/flate) compress/gzip(压缩/gzip) compress/lzw(压缩/lzw) compress/zlib(压缩/zlib) container container/heap(容器数据结构heap) container/list(容器数据结构list) container/ring(容器数据结构ring) context context(上下文) crypto crypto(加密) crypto/aes(加密/aes) crypto/cipher(加密/cipher) crypto/des(加密/des) crypto/dsa(加密/dsa) crypto/ecdsa(加密/ecdsa) crypto/elliptic(加密/elliptic) crypto/hmac(加密/hmac) crypto/md5(加密/md5) crypto/rand(加密/rand) crypto/rc4(加密/rc4) crypto/rsa(加密/rsa) crypto/sha1(加密/sha1) crypto/sha256(加密/sha256) crypto/sha512(加密/sha512) crypto/subtle(加密/subtle) crypto/tls(加密/tls) crypto/x509(加密/x509) crypto/x509/pkix(加密/x509/pkix) database database/sql(数据库/sql) database/sql/driver(数据库/sql/driver) debug debug/dwarf(调试/dwarf) debug/elf(调试/elf) debug/gosym(调试/gosym) debug/macho(调试/macho) debug/pe(调试/pe) debug/plan9obj(调试/plan9obj) encoding encoding(编码) encoding/ascii85(编码/ascii85) encoding/asn1(编码/asn1) encoding/base32(编码/base32) encoding/base64(编码/base64) encoding/binary(编码/binary) encoding/csv(编码/csv) encoding/gob(编码/gob) encoding/hex(编码/hex) encoding/json(编码/json) encoding/pem(编码/pem) encoding/xml(编码/xml) errors errors(错误) expvar expvar flag flag(命令行参数解析flag包) fmt fmt go go/ast(抽象语法树) go/build go/constant(常量) go/doc(文档) go/format(格式) go/importer go/parser go/printer go/scanner(扫描仪) go/token(令牌) go/types(类型) hash hash(散列) hash/adler32 hash/crc32 hash/crc64 hash/fnv html html html/template(模板) image image(图像) image/color(颜色) image/color/palette(调色板) image/draw(绘图) image/gif image/jpeg image/png index index/suffixarray io io io/ioutil log log log/syslog(日志系统) math math math/big math/big math/bits math/bits math/cmplx math/cmplx math/rand math/rand mime mime mime/multipart(多部分) mime/quotedprintable net net net/http net/http net/http/cgi net/http/cookiejar net/http/fcgi net/http/httptest net/http/httptrace net/http/httputil net/http/internal net/http/pprof net/mail net/mail net/rpc net/rpc net/rpc/jsonrpc net/smtp net/smtp net/textproto net/textproto net/url net/url os os os/exec os/signal os/user path path path/filepath(文件路径) plugin plugin(插件) reflect reflect(反射) regexp regexp(正则表达式) regexp/syntax runtime runtime(运行时) runtime/debug(调试) runtime/internal/sys runtime/pprof runtime/race(竞争) runtime/trace(执行追踪器) sort sort(排序算法) strconv strconv(转换) strings strings(字符串) sync sync(同步) sync/atomic(原子操作) syscall syscall(系统调用) testing testing(测试) testing/iotest testing/quick text text/scanner(扫描文本) text/tabwriter text/template(定义模板) text/template/parse time time(时间戳) unicode unicode unicode/utf16 unicode/utf8 unsafe unsafe
characters

  • 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

func RegisterHash(h Hash, f func() hash.Hash)

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

type Decrypter

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

type Decrypter interface {        // 公开返回与不透明对应的公钥,        // 私钥。        Public() PublicKey        // 解密解密消息。 opts的论点应该适合于        // 使用的原语。 请参阅每个实现中的文档        // 细节。        Decrypt(rand io.Reader, msg []byte, opts DecrypterOpts) (plaintext []byte, err error)}

type DecrypterOpts

type DecrypterOpts interface{}

type Hash

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

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 (Hash) Available

func (h Hash) Available() bool

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

func (Hash) HashFunc

func (h Hash) HashFunc() Hash

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

func (Hash) New

func (h Hash) New() hash.Hash

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

func (Hash) Size

func (h Hash) Size() int

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

type PrivateKey

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

type PrivateKey interface{}

type PublicKey

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

type PublicKey interface{}

type Signer

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)}

type SignerOpts

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的共享低级别结构。

Previous article: Next article: