go-dongle 0.2.5 版本发布,一个轻量级、语义化的 golang 编码解码、加密解密库

简介: dongle 是一个轻量级、语义化、对开发者友好的 Golang 编码解码和加密解密库

dongle 是一个轻量级、语义化、对开发者友好的 Golang 编码解码和加密解密库


`Dongle` 已被 [awesome-go](https://github.com/avelino/awesome-go#security "awesome-go") 收录, 如果您觉得不错,请给个 star 吧


[github.com/golang-module/dongle](https://github.com/golang-module/dongle "github.com/golang-module/dongle")


[gitee.com/golang-module/dongle](https://gitee.com/golang-module/dongle "gitee.com/golang-module/dongle")


**更新日志**


- 增加对 `rsa` 超长明文的私钥加密、公钥解密支持

- 将 `split()` 更名为 `bytesSplit()` 并从 `rsa.go` 移动到 `dongle/rsa.go`

- 将 `invalidRsaHashError` 从 `errors.go` 移动到 `dongle/rsa.go`

- 升级 `golang.org/x/crypto` 版本到 `v0.4.0`

- 修复备注错误


**功能清单**


- [x] Hex 编码、解码

- [x] Base16 编码、解码

- [x] Base32 编码、解码

- [x] Base45 编码、解码

- [x] Base58 编码、解码

- [x] Base62 编码、解码

- [x] Base64 编码、解码

- [x] Base64URL 编码、解码

- [x] SafeURL 编码、解码

- [x] Base85 编码、解码

- [x] Base91 编码、解码

- [x] Base100 编码、解码

- [x] Morse(摩斯) 编码、解码

- [x] Md2 加密

- [x] Md4 加密

- [x] Md5 加密

- [x] Sha1 加密

- [x] Sha3-224 加密

- [x] Sha3-256 加密

- [x] Sha3-384 加密

- [x] Sha3-512 加密

- [x] Sha224 加密

- [x] Sha256 加密

- [x] Sha384 加密

- [x] Sha512 加密

- [x] Sha512-224 加密

- [x] Sha512-256 加密

- [x] Shake128 加密

- [x] Shake256 加密

- [x] Ripemd160 加密

- [x] Blake2b-256 加密

- [x] Blake2b-384 加密

- [x] Blake2b-512 加密

- [x] Blake2s-256 加密

- [x] Hmac-md2 加密

- [x] Hmac-md4 加密

- [x] Hmac-md5 加密

- [x] Hmac-sha1 加密

- [x] Hmac-sha3-224 加密

- [x] Hmac-sha3-256 加密

- [x] Hmac-sha3-384 加密

- [x] Hmac-sha3-512 加密

- [x] Hmac-sha224 加密

- [x] Hmac-sha256 加密

- [x] Hmac-sha384 加密

- [x] Hmac-sha512 加密

- [x] Hmac-sha512-224 加密

- [x] Hmac-sha512-256 加密

- [x] Hmac-ripemd160 加密

- [x] Hmac-sm3 加密

- [ ] Rc2 加密、解密

- [x] Rc4 加密、解密

- [ ] Rc5 加密、解密

- [ ] Rc6 加密、解密

- [x] Tea 加密、解密

- [ ] Xtea 加密、解密

- [x] Aes 加密、解密

- [x] Blowfish 加密、解密

- [x] Des 加密、解密

- [x] 3Des 加密、解密

- [x] Rsa 加密、解密

- [ ] Ecc 加密、解密

- [ ] Sm2 加密、解密

- [x] Sm3 加密

- [ ] Sm4 加密、解密

- [ ] Sm7 加密、解密

- [ ] Sm9 加密、解密

- [x] Bcrypt 签名、验签

- [x] Ed25519 签名、验签

- [x] Rsa 签名、验签

- [ ] Dsa 签名、验签

目录
相关文章
|
Go 索引
【LeetCode 热题100】394:字符串解码(详细解析)(Go语言版)
本文详细解析了 LeetCode 热题 394:字符串解码。题目要求对编码字符串如 `k[encoded_string]` 进行解码,其中 `encoded_string` 需重复 `k` 次。文章提供了两种解法:使用栈模拟和递归 DFS,并附有 Go 语言实现代码。栈解法通过数字栈与字符串栈记录状态,适合迭代;递归解法则利用函数调用处理嵌套结构,代码更简洁。两者时间复杂度均为 O(n),但递归需注意栈深度问题。文章还总结了解题注意事项及适用场景,帮助读者更好地掌握字符串嵌套解析技巧。
428 6
|
存储 机器学习/深度学习 缓存
🚀 力扣热题 394:字符串解码(详细解析)(Go语言版)
文章提供了两种解法:栈结构和递归解法。栈解法通过维护数字栈与字符串栈,依次处理 `[` 和 `]`,构造解码结果;递归解法则利用函数调用逐层解析嵌套结构。两者时间复杂度均为 $O(n)$,空间复杂度也为 $O(n)$。栈解法直观易懂,适合初学者;递归解法优雅简洁,适合处理深度嵌套规则。掌握这两种方法,可灵活应对类似问题,提升解题能力。
559 11
|
Go 开发者
go-carbon v2.6.0 重大版本更新,轻量级、语义化、对开发者友好的 golang 时间处理库
carbon 是一个轻量级、语义化、对开发者友好的 Golang 时间处理库,提供了对时间穿越、时间差值、时间极值、时间判断、星座、星座、农历、儒略日 / 简化儒略日、波斯历 / 伊朗历的支持
368 3
|
JSON Go 开发者
go-carbon v2.5.0 发布,轻量级、语义化、对开发者友好的 golang 时间处理库
carbon 是一个轻量级、语义化、对开发者友好的 Golang 时间处理库,提供了对时间穿越、时间差值、时间极值、时间判断、星座、星座、农历、儒略日 / 简化儒略日、波斯历 / 伊朗历的支持。
402 4
|
JSON 人工智能 编译器
Go json 能否解码到一个 interface 类型的值
Go json 能否解码到一个 interface 类型的值
192 1
|
JSON JavaScript 前端开发
Golang深入浅出之-Go语言JSON处理:编码与解码实战
【4月更文挑战第26天】本文探讨了Go语言中处理JSON的常见问题及解决策略。通过`json.Marshal`和`json.Unmarshal`进行编码和解码,同时指出结构体标签、时间处理、omitempty使用及数组/切片区别等易错点。建议正确使用结构体标签,自定义处理`time.Time`,明智选择omitempty,并理解数组与切片差异。文中提供基础示例及时间类型处理的实战代码,帮助读者掌握JSON操作。
547 1
Golang深入浅出之-Go语言JSON处理:编码与解码实战
|
JavaScript 前端开发 安全
安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作
安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作
321 5
|
安全 程序员 网络安全
编码之舞:我的编程技术感悟网络安全与信息安全:漏洞、加密技术及安全意识的探讨
在数字世界的广阔舞台上,编程技术如同一种精确而优美的舞蹈。它不仅要求逻辑的严密和技术的精湛,还需要创新思维和持续学习的热情。本文将分享作者在编程旅程中的个人感悟,探讨如何通过实践、学习和反思不断提升编程能力,并在技术探索中找到乐趣和成就感。 在数字化时代,网络安全和信息安全已成为全球关注的焦点。随着网络攻击手段的不断升级,如何保护个人和企业的数据安全成为了一个亟待解决的问题。本文将深入探讨网络安全漏洞的产生原因、加密技术的应用以及提升安全意识的重要性。通过分析具体案例,我们将揭示网络安全领域的最新发展趋势,并提供实用的防护策略,帮助读者构建更为坚固的安全防线。
|
JSON 编解码 Go
【Go语言专栏】Go语言中的JSON编码与解码
【4月更文挑战第30天】Go语言内置JSON编码解码支持,简化了数据交换。`json.Marshal`用于将Go结构体转换为JSON,如示例中`Person`结构体的编码。`json.Unmarshal`则将JSON数据反序列化到结构体,需传入结构体变量的地址。错误处理至关重要,特别是在处理大量数据时,要注意性能优化,如避免不必要的转换和重复操作。了解自定义编码解码和最佳实践能提升开发效率。掌握这些技能,有助于构建高效Go应用。
326 0
|
9月前
|
存储 安全 Java
【Golang】(4)Go里面的指针如何?函数与方法怎么不一样?带你了解Go不同于其他高级语言的语法
结构体可以存储一组不同类型的数据,是一种符合类型。Go抛弃了类与继承,同时也抛弃了构造方法,刻意弱化了面向对象的功能,Go并非是一个传统OOP的语言,但是Go依旧有着OOP的影子,通过结构体和方法也可以模拟出一个类。
444 2

推荐镜像

更多