发了篇xmind库的推荐,没想到大家都去starred数据加密仓库EncryptionFile了,大家都这么看重数据安全嘛

jan-bar · 2023-08-28 11:35:18 · 1061 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2023-08-28 11:35:18 的主题,其中的信息可能已经有所发展或是发生改变。

推荐xmind库的帖子:https://studygolang.com/topics/16634

既然这么多人喜欢,我把这个库也发出来吧,顺道优化之前的代码

安全数据加解密仓库:https://github.com/jan-bar/EncryptionFile

仓库名字感觉不太合适了,最早我也是用来加解密文件的,后来支持更通用的io.Readerio.Writer了,不过项目名也懒得改了

函数签名如下

// EncData
//  @Description: 加密数据
//  @param r      数据来源读出流
//  @param w      加密数据写入流
//  @param pubKey 公钥数据
//  @param h      指定hash校验方法
//  <a href="/user/return" title="@return">@return</a> error 返回错误
func EncData(r io.Reader, w io.Writer, pubKey []byte, h hash.Hash) error 

// DecData
//  @Description:  解密数据
//  @param r       密文数据读入流
//  @param w       解密后数据写入流
//  @param priKey  私钥数据
//  @param h       指定hash校验方法
//  <a href="/user/return" title="@return">@return</a> error  返回错误
func DecData(r io.Reader, w io.Writer, priKey []byte, h hash.Hash) error

// GenRsaKey
//
//    @Description: 生成rsa公私钥对
//    @param bits   生成位数
//    @param pub    公钥写入流
//    @param pri    私钥写入流
//    <a href="/user/return" title="@return">@return</a> error 返回错误
func GenRsaKey(bits int, pub, pri io.Writer) error

加密后数据内容结构如下,任何一个字节的改动解密都会失败,没有私钥甚至都没法穷举aes秘钥的方式解密

原理


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1061 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传