{"id":19922182,"url":"https://github.com/zyallers/gocrypt","last_synced_at":"2025-06-15T12:05:39.536Z","repository":{"id":64297788,"uuid":"561671140","full_name":"ZYallers/gocrypt","owner":"ZYallers","description":"Go实现AES加解密、3DES加解密、RSA加解密（私钥加密公钥解密、公钥加密私钥解密）","archived":false,"fork":false,"pushed_at":"2023-07-04T05:50:06.000Z","size":25,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-01T10:15:52.682Z","etag":null,"topics":["3des","3des-cbc","aes","aes-cbc","go","golang","rsa"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZYallers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-04T08:13:18.000Z","updated_at":"2022-11-08T08:48:53.000Z","dependencies_parsed_at":"2024-06-20T13:09:12.673Z","dependency_job_id":"c67b7b87-cc3e-4e9c-adea-e4ae9cb5a8b1","html_url":"https://github.com/ZYallers/gocrypt","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/ZYallers/gocrypt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZYallers%2Fgocrypt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZYallers%2Fgocrypt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZYallers%2Fgocrypt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZYallers%2Fgocrypt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZYallers","download_url":"https://codeload.github.com/ZYallers/gocrypt/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZYallers%2Fgocrypt/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259971330,"owners_count":22940009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3des","3des-cbc","aes","aes-cbc","go","golang","rsa"],"created_at":"2024-11-12T22:09:55.295Z","updated_at":"2025-06-15T12:05:39.507Z","avatar_url":"https://github.com/ZYallers.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gocrypt\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/ZYallers/gocrypt)](https://goreportcard.com/report/github.com/ZYallers/gocrypt)\n[![MIT license](https://img.shields.io/badge/license-MIT-brightgreen.svg)](https://opensource.org/licenses/MIT)\n[![Build Status](https://travis-ci.org/ZYallers/gocrypt.svg?branch=master)](https://travis-ci.org/ZYallers/gocrypt)\n[![Foundation](https://img.shields.io/badge/Golang-Foundation-green.svg)](http://golangfoundation.org)\n[![GoDoc](https://pkg.go.dev/badge/github.com/ZYallers/gocrypt?status.svg)](https://pkg.go.dev/github.com/ZYallers/gocrypt?tab=doc)\n[![Sourcegraph](https://sourcegraph.com/github.com/ZYallers/gocrypt/-/badge.svg)](https://sourcegraph.com/github.com/ZYallers/gocrypt?badge)\n[![Release](https://img.shields.io/github/release/ZYallers/gocrypt.svg?style=flat-square)](https://github.com/ZYallers/gocrypt/releases)\n[![TODOs](https://badgen.net/https/api.tickgit.com/badgen/github.com/ZYallers/gocrypt)](https://www.tickgit.com/browse?repo=github.com/ZYallers/gocrypt)\n[![goproxy.cn](https://goproxy.cn/stats/github.com/ZYallers/gocrypt/badges/download-count.svg)](https://goproxy.cn)\n\n`gocrypt`Go实现AES加解密、3DES加解密、RSA加解密（私钥加密公钥解密、公钥加密私钥解密）。\n\n## 如何使用\n\n1. 首先需要安装Go（需要1.15+版本），然后可以使用下面的Go命令导入`gocrypt`包。\n\n```bash \n$ go get github.com/ZYallers/gocrypt\n ```\n\n2. 使用案例：\n\n```go\npackage gocrypt\n\nimport (\n\t\"fmt\"\n\t\"github.com/ZYallers/gocrypt/aes\"\n\t\"github.com/ZYallers/gocrypt/des3\"\n\t\"github.com/ZYallers/gocrypt/rsa\"\n)\n\nconst (\n\taesKey  = \"I98NTHNPezFnbe8iCaSc1xMPAv8ZtTil\"\n\tdes3key = \"PH5yDbhyPCQmKemfdV7S2T8N\"\n\tpubKey  = `-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9jxNe1BcLJBbDyeRj80V\nH1cfIs+3nF14EgffwoEa2lx14V4wFSaZQPQTmpS1j2Q9cCLLJC4evdb6jtiZpEDt\ntXgtLkvHp3m4ITZqcujavP5UqJNowbsCZEh84GuG7qkaCx1jiTBMEAv3WMj0dwlV\nhxLlrxlQf22WW+s0LiyuWAsxtAXeTLzoTNdRAWISDHX8r25zsjZzBC+vxDH/Y8GA\nWHesgj/Mdb/5w7UiVOIJF0I4EtcD0kmWWq5Qo2mO1jldppvoM1tHpFpFxR2XGtPt\ndgOkRV3WBKT+kEr4nqi/hkLYQSuQiCqRfEi9cZQimVsAdeNsBNQhbHn1+Ai1teoD\n1wIDAQAB\n-----END PUBLIC KEY-----\n`\n\tpriKey = `-----BEGIN PRIVATE KEY-----\nMIIEowIBAAKCAQEA9jxNe1BcLJBbDyeRj80VH1cfIs+3nF14EgffwoEa2lx14V4w\nFSaZQPQTmpS1j2Q9cCLLJC4evdb6jtiZpEDttXgtLkvHp3m4ITZqcujavP5UqJNo\nwbsCZEh84GuG7qkaCx1jiTBMEAv3WMj0dwlVhxLlrxlQf22WW+s0LiyuWAsxtAXe\nTLzoTNdRAWISDHX8r25zsjZzBC+vxDH/Y8GAWHesgj/Mdb/5w7UiVOIJF0I4EtcD\n0kmWWq5Qo2mO1jldppvoM1tHpFpFxR2XGtPtdgOkRV3WBKT+kEr4nqi/hkLYQSuQ\niCqRfEi9cZQimVsAdeNsBNQhbHn1+Ai1teoD1wIDAQABAoIBAADaVp5dueQBn/8e\ncPehizgvkhEJzSYCgN73HgRLdC9bcKEWNW5tUsyRy9uWNkbH3xqbVD7M1hhsPTPv\ndiDGhMxDHUzywD9JQaUDzjyVp+RNsTdgQ1WgczKruZsBZFdBSLDPKkAYZbsMf4/U\nKlybMKumGhuQJ+I5G/M3jle2mef+KDGoWl1Mc/3TNeqUp6NZZKi2H5okZEHoNgeL\n8Kyh8cBBih4D0UOU//8eRgUBxIVrHdkcLRtVx5OJA3LWTLPDVGNGXUewlpER/uLx\n9oXhYfTTYWGv/UZIiq3CWVsFopui7mTCxDZn7452vDNp1wYqPUkhLYzhc3d9mXF8\nZMGHhKECgYEA+qZdLfDrOXjYjnOubcGlIETf8WTjHZanqpofFynrB6VaTnrPa+pK\nafXCnVENbU7TVRyhf/Nwox44LSPrzDiVPDnAxElrVwm5gXbGFGk5bd1yaxmaW2jB\nYrBxD6UvxnCdwL0AWhbfjb5YQkV0F/8fPvjLVzq/fa+3xL5eYaTARicCgYEA+33R\nQ1wGXDA+NLElTFKsw3zYlk1VI3hHz04yPClZ/Gu9Flr3ZJrzN7TVCua/tqOgNQg5\nyBY8StiN1vqzSL9wFXdJCMlhjb81rdFUuiFbh0FZusk7EErl6DjpkbgSw8YYFrxg\nP0UktpqmbXjEMzIu16Coy2tZCm29wXtCTWMuEtECgYAJQ1iyN/MZfqPSL+hEWiG2\nHZWBIE9capLrtSJtArmS4MODnvpHbLMvU0vL8JDkd0NMI/C7/80r2hQNZwRx2a16\nOlArcOMspklaxX7whir/Km3uE1YnBqoO8aJcB6jKVqMd2l5G9g1w+ZXdbR+rO1x2\nQU+Se7NT+8h41ug6B5KrhQKBgGRoyYIxXcC06kEzcQbWA3BRilAINDPjNBiKyffH\nMsxbX7VrQFcEnpLhOiYOFwEetzo1PIyshAoGCCuLEMW82U1YwOonLTHg49ewOjnO\nU7Le3qp66YAJx10+S9MIQUW0860wLOVV/+CAQm52xy8BnD4vQPVmuLg3NInpYoFv\nVdfhAoGBAJvlFW5MSvklFiBdYiDpI4TZ4T5AbthM2+HzUONyTZOqL++6xsqNZ3g1\npUPK39jiOO3USu/xOCVYUWJhD0awYzXK36ufd0ZF8uFPzNwleu82XXKVVTaG+7eo\n7pkTAK3/D60jl/S2dRwpCGQViOpshOVasQE1i6skMknTWqEvrJh1\n-----END PRIVATE KEY-----\n`\n)\n\nfunc init() {\n\taes.CbcCrypto.SetAesKey(aesKey)\n\tdes3.CbcCrypto.SetDes3Key(des3key)\n\tif err := rsa.Crypto.SetPubKey(pubKey); err != nil {\n\t\tpanic(err)\n\t}\n\tif err := rsa.Crypto.SetPriKey(priKey); err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc main() {\n\t// AES\n\tb, err := aes.CbcCrypto.Encrypt([]byte(\"hello aes\"))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tfmt.Println(\"aes encrypt=\", aes.CbcCrypto.Encode(b))\n\tb, err = aes.CbcCrypto.Decrypt(b)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tfmt.Println(\"aes decrypt=\", aes.CbcCrypto.String(b))\n\n\t// 3DES\n\tb, err = des3.CbcCrypto.Encrypt([]byte(\"hello des3\"))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tfmt.Println(\"des3 encrypt=\", des3.CbcCrypto.Encode(b))\n\tb, err = des3.CbcCrypto.Decrypt(b)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tfmt.Println(\"des3 decrypt=\", des3.CbcCrypto.String(b))\n\n\t// RSA\n\tif bte, err := rsa.Crypto.Encrypt([]byte(\"hello rsa\"), rsa.PubKeyEncrypt); err != nil {\n\t\tpanic(err)\n\t} else {\n\t\tfmt.Println(\"rsa public key encrypt=\", rsa.Crypto.Encode(bte))\n\t\tif b, err := rsa.Crypto.Decrypt(bte, rsa.PriKeyDecrypt); err != nil {\n\t\t\tpanic(err)\n\t\t} else {\n\t\t\tfmt.Println(\"rsa private key decrypt=\", rsa.Crypto.String(b))\n\t\t}\n\t}\n\tif bte, err := rsa.Crypto.Encrypt([]byte(\"hello rsa\"), rsa.PriKeyEncrypt); err != nil {\n\t\tpanic(err)\n\t} else {\n\t\tfmt.Println(\"rsa private key encrypt=\", rsa.Crypto.Encode(bte))\n\t\tif b, err := rsa.Crypto.Decrypt(bte, rsa.PubKeyDecrypt); err != nil {\n\t\t\tpanic(err)\n\t\t} else {\n\t\t\tfmt.Println(\"rsa public key decrypt=\", rsa.Crypto.String(b))\n\t\t}\n\t}\n}\n```\n\n运行输出结果：\n```\naes encrypt= DSr41kfl6DuYe0xY1BwhXA==\naes decrypt= hello aes\ndes3 encrypt= XjXiGowut6GsnGpe9Lavjw==\ndes3 decrypt= hello des3\nrsa public key encrypt= RT3DJe39wFH5gtn5fA3O1AgMAbTMIL5XNiKYNDQChCtWDVKFL5ePgwHAUKB8wGkgSUVYcaFOeuG7XzF+odJuXgLLe2Xzk0J72E+mDS8yLeYskg9G6LrouaRNFA41uTDk7yPJQjDq3rPgRf8ZjN8u0zU/bYhcQUUp8eZi5Rqk/3zJTPn/bFUTGCo/YzCk+PA7j399K43VvnpqrML0MS1wJZc74ekBVwAKMG44RpnfZa7oWk5sI1V7Z9XAlNZhH0n6WcCMjTUjmI7h8w7RuQiTw5KuEF4D27hyAM0oIiYjTP6Ab9GRp2ISvz2/pUThdMuJdKBuK50wZrKbTExpznf/Ww==\nrsa private key decrypt= hello rsa\nrsa private key encrypt= Oacl0SwoeeeVcwNroJDz/U/yt42q1h2wPLjazmoOh4wQw2qyct2n0eVfov1RfG8iq41mBsWDYBDyOitHzcLXQyt3xUPv0BVj1+3bsknC8opfpVY35PApS4YBy7SsB0KOl10Avz6gmY7dL1HWwrMsB5ACGgPqXbxdSquVDL3m8/048IbUD2zv/TpVjbxa8sZ+FymlkGQQOE7+RQQgtONiQEvYhTzF10dHnScjN9D39Nky3HADM+ltXsg5Ld3KDRVNMnjmqyZ4snUEO5RdFTBnGFIpKa0lHazPfL8jQhybp328+gD4lRTOZ9R6POId0Efh6wIbBmchlGZtru27L8TGIA==\nrsa public key decrypt= hello rsa\n```\n\n## License\n\nReleased under the [MIT License](https://github.com/ZYallers/gocrypt/blob/master/LICENSE)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzyallers%2Fgocrypt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzyallers%2Fgocrypt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzyallers%2Fgocrypt/lists"}