当前位置: 首页 > news >正文

网站建设和美工湖北神润建设工程网站

网站建设和美工,湖北神润建设工程网站,网站主题有哪些,百度自媒体怎么注册文章目录 仓库地址介绍安装用法SHA512HMACBcryptScryptAESRSAECC 仓库地址 仓库地址:https://github.com/palp1tate/go-crypto-guard 欢迎star和fork! 介绍 此存储库包含用 Go 编写的全面的密码哈希库。该库支持多种哈希算法,它允许可定制…

文章目录

    • 仓库地址
    • 介绍
    • 安装
    • 用法
      • SHA512
      • HMAC
      • Bcrypt
      • Scrypt
      • AES
      • RSA
      • ECC

仓库地址

仓库地址:https://github.com/palp1tate/go-crypto-guard

欢迎starfork

介绍

此存储库包含用 Go 编写的全面的密码哈希库。该库支持多种哈希算法,它允许可定制的盐长度、迭代、键长度和算法选择。这个开源项目旨在为开发人员提供一个多功能的工具,用于安全的密码存储和验证。

支持的算法:

  • SHA512
  • SHA384
  • SHA256
  • SHA1
  • Md5
  • HMAC
  • Argon2
  • Bcrypt
  • Scrypt
  • Blake2b
  • Blake2s
  • AES
  • DES
  • 3DES
  • RSA
  • RC4
  • Blowfish
  • ECC

一些加密过后的密码格式与Django内置的加密算法格式相同:

<algorithm>$<iterations>$<salt>$<hash>

其他可能的格式:

<algorithm>$<hash>

安装

go get -u github.com/palp1tate/go-crypto-guard 

用法

SHA512

// SHA512 使用 PBKDF2 和 SHA-512 对密码进行加密。
// 它接受密码、盐长度、密钥长度和迭代次数作为输入。如果你传入一个无效的值,函数将采取默认值。
// 它生成一个盐,使用 PBKDF2 和 SHA-512 派生一个密钥,并返回加密的密码。
// 密码的格式:<algorithm>$<iterations>$<salt>$<hash>
//pbkdf2_sha512$100$40fde046f66c1d9e55b4435d$1fdd34c50a98e576b612d66be507f019password := "12345678"
encodedPassword, _ := pwd.GenSHA512(password, 12, 16, 100)
ok, _ := pwd.VerifySHA512(password, encodedPassword)

SHA384、 SHA256、 SHA1、 Md5和 Argon2的用法与 SHA512相同.

HMAC

// HMAC 使用 HMAC 和 SHA-256 对密码进行加密。
// 它接受密码和盐长度作为输入。
// 它生成一个盐,使用盐和 SHA-256 计算密码的 HMAC,并返回加密的密码。
// 密码的格式:<algorithm>$<salt>$<hash>
//hmac$3bf4e2c1a9ed54575d0d1f937eb363ab$a6ed73f8fe48867db2bd58c69ebe6c0fb91ecdd8147c4352fecf018d07cb4f43password := "12345678"
encodedPassword, _ := pwd.GenHMAC(password, 16)
ok, _ := pwd.VerifyHMAC(password, encodedPassword)

Bcrypt

// Bcrypt 使用 Bcrypt 哈希函数对密码进行加密。
// 它接受一个密码作为输入,使用 Bcrypt 的默认成本从密码生成一个哈希,并返回加密的密码。
// 密码的格式:<algorithm>$<hash>
//bcrypt$243261243130246769545174546869684f565835616a694a4e3578432e6e387a4c426451526932692e443067756758334a436d3532717365784e5661password := "12345678"
encodedPassword, _ := pwd.GenBcrypt(password)
ok, _ := pwd.VerifyBcrypt(password, encodedPassword)

对 Blake2b、 Blake2s 的使用与对 Bcrypt 的使用相同.

Scrypt

// Scrypt 使用 Scrypt 密钥派生函数对密码进行加密。
// 它接受一个密码、盐长度和密钥长度作为输入。
// 它生成一个盐,使用 Scrypt 和提供的参数派生一个密钥,并返回加密的密码。
// 密码的格式:<algorithm>$<salt>$<hash>
//scrypt$679a0a3c8336a9ff36b809862e7d494c$c4cec5ca742fa984045457f76d217acf245f032251c6a3952c4d68e1cba4a488password := "12345678"
encodedPassword, _ := pwd.GenScrypt(password, 16, 32)
ok, _ := pwd.VerifyScrypt(password, encodedPassword)

AES

// AES 使用 AES 加密算法对密码进行加密。
// 它接受一个密码和一个 AES 密钥作为输入。
// 它从 AES 密钥创建一个新的密码块,对密码应用 PKCS7 填充,并使用 CBC 模式加密密码。它返回加密的密码。
// 密码的格式:<algorithm>$<hash>
// aes$BhV9oJiePwpsEwDWizJoCA==password := "12345678"
//aes key的长度必须为32
aesKey := "palpitateabcdefghijklmn123456789"
encodedPassword, _ := pwd.GenAES(password, aesKey)
ok, _ := pwd.VerifyAES(password, encodedPassword, aesKey)

DES、ThreeDES、RC4和Blowfish的使用与Bcrypt相同,对于DES,desKey的长度必须为8。对于ThreeDES,threeDesKey的长度必须为24。rc4Key和BlowfishKey的长度没有限制,但对于Blowfish,密码的长度必须为8。

RSA

// GenRSAKey 生成一对 RSA 密钥并将它们保存到文件中。 
// 它接受密钥的位数作为输入。推荐使用 2048 或 4096。 
// 它生成一个私钥和一个公钥,并分别将它们写入 “privateKey.pem” 和 “publicKey.pem”。// RSA 使用 RSA 加密算法对密码进行加密。 
// 它接受一个密码和公钥文件的路径作为输入。 
// 它从文件中读取公钥,使用 RSA 和 PKCS1v15 填充对密码进行加密,并返回加密的密码。 
// 密码的格式:<algorithm>$<hash> 
//rsa$3p1+X80iFIDtwtKOQFjXm+deyv+cxkEIbpXuwXcqbcCvean6zyWvcrogQtDj2MkYOE2ScHpARR93RYxs3y+RXetKAHhrDqWURYcyJwuTwShBmR4hz+3WkFzhqm44IgPdlgdt70uO7TXx6fj1WmUTsZpNDTF/WNdEUO7Rzc8wahYBcnMOnPgUXrnUCYRSX7OBjuLwThnd9FTgh8CdaqESHWh6UPgkj9xz3G2uRplx2Tae0Pbsk8vQTuJXsqT//Q8yoC+ELo+5S6wTE6H8AMBdgvJgNHzFDldQD8UsZ7Ta/u2uF/joHwBA6V6IS4+1ithspE9ceJZCBWo2Cj6fMIbvjg==// 在你可以加密密码之前,你必须先生成一对密钥。这个函数只能被调用一次,记住在验证密码时需要相同的密钥对。_ = pwd.GenRSAKey(2048)	//只需要执行一次就可以注释掉
password := "12345678"
encodedPassword, _ := pwd.GenRSA(password, "publicKey.pem")
ok, _ := pwd.VerifyRSA(password, encodedPassword, "privateKey.pem")

ECC

// ECC 使用 ECC 加密算法对密码进行加密。
// 它接受一个密码和一个私钥作为输入。
// 它计算密码的 SHA-256 摘要,使用私钥对摘要进行签名,并返回加密的密码。
// 密码的格式:<algorithm>$<hash>
//ecc$BQOoQvBhRHKi9GsV0qpPiyMJ5hRwdiXlQL7CcMsPCo1GvIomtb8xzjNnmq7RNRWmS9AKXo+i0Cg4fmAdLeCN8w==password := "12345678"
privateKey, _ := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
encodedPassword, _ := pwd.GenECC(password, privateKey)
publicKey := privateKey.PublicKey
ok, _ := pwd.VerifyECC(password, encodedPassword publicKey)
http://www.yayakq.cn/news/127101/

相关文章:

  • 做网站收费怎么查询网站有没备案
  • 盗用别人网站图做网站旅游电子商务网站的建设方案
  • 订阅号怎么制作wp系统网站如何做seo
  • 雅虎网站收录入口商丘建设网站
  • 亚马逊企业网站建设微信推广平台自己可以做
  • 国外网站建站700个吉祥公司名字
  • 做网站专业术语小程序分销系统开发
  • 威海建设网站什么是网络营销环境
  • 网站建设站长相关专业宁波网站推广软件服务
  • 青岛做网站的公司哪个比较好硬件开发工程师面试
  • 西部数码网站管理助手 mysql保存路径网站开发干嘛
  • 如何宣传商务网站网站备案 接入商备案
  • 免费自创网站凡科小程序教程
  • 桂林分销网站开发建网站要注意些什么
  • 企业网站哪家公司好搜狗站长平台验证网站
  • 微商城网站建设策划方案小学生简短小新闻
  • 揭阳网站建设工作实验室网站建设的调查报告
  • 户外网站建设公司管理类培训
  • php做网站登录界面网站详情页怎么做
  • 建设银行网站买手机旅游网站盈利模式怎么做
  • 网站接入百度地图网站建设实训报告目的
  • 自适应型网站建设哪家好石家庄市网站制作价格
  • 聚牛网站建设公司软件工程师发展前景
  • 免费做数据采集的网站网页超链接怎么做
  • 海南网站制作公司网站用的什么字体
  • 电子商务网站功能设计与分析高权重网站出售
  • 动漫网站模板设计图网站的pv是什么
  • 企业为什么做网站素材制作公司网站需要购买域名和服务器吗
  • 北京网站推广优化wordpress phonegap
  • 源码网站建设软文写手兼职