• Stars
    star
    158
  • Rank 236,396 (Top 5 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 2 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

go 常用加密解密库/go encrypt or decrypt pkg(RSA/SM2/EIGamal/AES/DES/TripleDes/SM4/Tea/Twofish)

go-cryptobin

go-cryptobin 是 go 的常用加密解密库

项目介绍

  • go-cryptobin 包括常用的对称加密和非对称加密及签名验证
  • 对称加密解密(Aes/Des/TripleDes/SM4/Tea/Twofish/Xts)
  • 对称加密解密模式(ECB/CBC/PCBC/CFB/OFB/CTR/GCM/CCM)
  • 对称加密解密补码(NoPadding/ZeroPadding/PKCS5Padding/PKCS7Padding/X923Padding/ISO10126Padding/ISO97971Padding/ISO7816_4Padding/TBCPadding/PKCS1Padding)
  • 非对称加密解密(RSA/SM2/EIGamal)
  • 非对称签名验证(RSA/PSS/DSA/ECDSA/EdDSA/SM2/EIGamal)
  • 默认 Aes, ECB, NoPadding

环境要求

  • Go >= 1.20

下载安装

go get -u github.com/deatil/go-cryptobin

开始使用

package main

import (
    "fmt"

    "github.com/deatil/go-cryptobin/cryptobin/crypto"
)

func main() {
    // 加密
    cypt := crypto.
        FromString("useData").
        SetKey("dfertf12dfertf12").
        Aes().
        ECB().
        PKCS7Padding().
        Encrypt().
        ToBase64String()

    // 解密
    cyptde := crypto.
        FromBase64String("i3FhtTp5v6aPJx0wTbarwg==").
        SetKey("dfertf12dfertf12").
        Aes().
        ECB().
        PKCS7Padding().
        Decrypt().
        ToString()

    // i3FhtTp5v6aPJx0wTbarwg==
    fmt.Println("加密结果:", cypt)
    fmt.Println("解密结果:", cyptde)
}

结构说明

  • 默认方式 Aes, ECB, NoPadding
// 加密数据
cypt := crypto.
    FromString("useData").
    SetKey("dfertf12dfertf12").
    Encrypt().
    ToBase64String()
// 解密数据
cyptde := crypto.
    FromBase64String("i3FhtTp5v6aPJx0wTbarwg==").
    SetKey("dfertf12dfertf12").
    Decrypt().
    ToString()
  • 结构说明
// 使用代码
// 注意: 设置密码,加密类型,加密模式,补码方式 在 操作类型 之前, 可以调换顺序
ret := crypto.
    FromString("string"). // 数据来源, 待加密数据/待解密数据
    SetKey("key").        // 设置密码
    SetIv("iv_string").   // 设置向量
    Aes().                // 加密类型
    CBC().                // 加密模式
    PKCS7Padding().       // 补码方式
    Encrypt().            // 操作类型, 加密或者解密
    ToBase64String()      // 返回结果数据类型

可用方法

  • 数据来源: FromBytes(data []byte), FromString(data string), FromBase64String(data string), FromHexString(data string)

  • 设置密码: SetKey(data string), WithKey(key []byte)

  • 设置向量: SetIv(data string), WithIv(iv []byte)

  • 加密类型: Aes(), Des(), TripleDes(), Twofish(), Blowfish(), Tea(rounds ...int), Xtea(), Cast5(), RC4(), Idea(), SM4(), Chacha20(nonce string, counter ...uint32), Chacha20poly1305(nonce string, additional string), Xts(cipher string, sectorNum uint64)

  • 加密模式: ECB(), CBC(), PCBC(), CFB(), OFB(), CTR(), GCM(nonce string, additional ...string), CCM(nonce string, additional ...string)

  • 补码方式: NoPadding(), ZeroPadding(), PKCS5Padding(), PKCS7Padding(), X923Padding(), ISO10126Padding(), ISO7816_4Padding(), TBCPadding(), PKCS1Padding(bt ...string)

  • 操作类型: Encrypt(), Decrypt(), FuncEncrypt(f func(Cryptobin) Cryptobin), FuncDecrypt(f func(Cryptobin) Cryptobin)

  • 返回数据类型: ToBytes(), ToString(), ToBase64String(), ToHexString()

  • 更多信息可以查看 文档

开源协议

  • 本软件包遵循 Apache2 开源协议发布,在保留本软件包版权的情况下提供个人及商业免费使用。

版权

More Repositories

1

lakego-admin

lakego-admin 是使用 gin、JWT 和 RBAC 的前后端分离的 go 后台管理系统。An admin api system with gin, JWT and RBAC.
Go
257
star
2

larke-admin

larke-admin 是一套使用 Laravel 、JWT 和 RBAC 鉴权的前后端分离的通用后台管理系统。An admin api system with Laravel, JWT and RBAC.
PHP
240
star
3

larke-admin-frontend

larke-admin-frontend 是基于 element-ui 和 vue2 的 larke-admin 前端项目
Vue
69
star
4

dcat-form-media

Dcat-admin 表单媒体扩展
JavaScript
55
star
5

doak-cms

doak-cms 是使用 gofiber 和 Xorm 的 go 文章管理系统
JavaScript
51
star
6

nako-blog

nako-blog 是使用 actix-web, sea-orm 及 tera 开发的 rust 博客系统
JavaScript
50
star
7

lakego-admin-frontend

lakego-admin 后台管理系统前端项目,使用 Vite, Vue3, Ant-Design-Vue 开发
Vue
35
star
8

lake-admin

lake-admin是一款基于ThinkPHP6和Layui的后台开发框架。
JavaScript
31
star
9

dcat-login-captcha

Dcat-admin 登陆验证码
PHP
29
star
10

laket-admin

laket-admin 是使用 Thinkphp 和 Layui 开发的后台管理系统,Thinkphp 版本升级到 v8 最新版本
JavaScript
26
star
11

go-filesystem

go 版本文件管理器
Go
14
star
12

go-array

go 数组数据获取
Go
14
star
13

go-event

go-event 是一个 go 实现的事件及事件订阅库
Go
10
star
14

doak-cron

使用 go 实现的计划任务管理,支持多种平台执行计划任务
Go
10
star
15

doak-fs

doak-fs 使用 echo 框架和 pongo2 模板框架开发的 go 文件管理系统,打包配置文件, 模板文件和静态文件到二进制文件
JavaScript
9
star
16

laravel-admin-lapi

Api授权管理,签名算法实现了md5和Sha256摘要算法
PHP
7
star
17

short-url

short-url 是基于 webman 的短链接服务系统
Blade
6
star
18

go-encoding

go 常用编码解码库 (Hex/Base32/Base45/Base58/Base62/Base64/Base85/Base91/Base100/MorseITU/JSON)
Go
6
star
19

go-hash

go 常用摘要算法库 (MD2/MD4/MD5/Hmac/Ripemd160/SHA1/SHA3/SHA256/SM3/xxhash)
Go
5
star
20

key-pem

各种pem证书示例(dsa/rsa/ecdsa/eddsa/sm2/dh/ecdh/dh-curve25519/openssh-key)
5
star
21

go-crc16

crc16 checksum (IBM/ARC/AUG_CCITT/BUYPASS/CCITT/CCITT_FALSE/CDMA2000/DDS_110/DECT_R/DECT_X/DNP/GENIBUS/MAXIM/MCRF4XX/RIELLO/T10_DIF/TELEDISK/TMS37157/USB/CRC_A/KERMIT/MODBUS/X_25/XMODEM/XMODEM2)
Go
5
star
22

lakef-admin

lakef-admin 是基于swoole,使用hyperf框架开发的通用后台管理系统
JavaScript
4
star
23

pt

pt插件,包括上传下载统计及用户流量统计。
PHP
3
star
24

lake-admin-cms

简单高效实用的内容管理系统
PHP
2
star
25

slim-board

简单社区论坛系统,使用slimphp开发
JavaScript
2
star
26

larke-admin-logviewer

larke-admin日志查看器
PHP
2
star
27

go-datebin

go 简单易用的日期时间库
Go
2
star
28

go-crc

crc 相关算法,主要包括 lrc, bcc, crc3,crc4, crc5, crc6, crc7, crc12, crc24 和 crc40 算法
Go
2
star
29

Haya

常用开发库
PHP
1
star
30

SimpleCache

依据PSR-16 缓存接口规范实现
PHP
1
star
31

laket-admin-database

laket-admin 数据库管理
PHP
1
star
32

lake-admin-addon-lroute

支持thinkphp自带的多种路由美化设置,自定义你的系统url
HTML
1
star
33

go-pipeline

go 通用管道
Go
1
star
34

larke-auth

An authorization library that supports access control models like ACL, RBAC, ABAC in Laravel.
PHP
1
star