首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏FreeBuf

    为什么要用BLAKE2替换SHA-1?| 密码学分析

    下图显示的是各种不同的哈希函数在一块英特尔CPU(Skylake架构)上的吞吐量测试信息: 因为BLAKE2非常简单 你会发现,我们可以方便地用各种不同的编程语言来实现BLAKE2,例如C、Go、Java 比如说,BLAKE2默认就是Go语言“/x/crypto”包中的一部分。除此之外,目前很多流行的加密代码库都包含有BLAKE2,例如OpenSSL和Sodium等等。 为什么不用SHA-2或SHA-3代替SHA-1呢? SHA-2其实是一个哈希函数家族,其中包括SHA-256、SHA-384和SHA-512,而且还提供了SHA-224和SHA-384这两个变种版本。 SHA-2哈希函数可以看作是安全系数更高的SHA-1,而SHA-2目前还没有被破解。但是跟BLAKE2相比,SHA-2哈希函数在性能和速度方面明显要处于劣势。 总结 实际上,安全研究人员早在2005年就已经对外宣称MD5和SHA-1从理论上来说是可以被破解的,但是很多开发者仍然没有将SHA-1升级为SHA-2,并且还在继续使用这种不安全的哈希算法,因为他们不愿意牺牲网络服务的速度和效率来换取更高的安全性

    2.2K60发布于 2018-02-24
  • 来自专栏开源服务指南

    比 md5 更快更安全:全新的哈希函数 | 开源日报 No.294

    具有以下特点和优势: 比 MD5、SHA-1、SHA-2、SHA-3 和 BLAKE2 快得多。 安全性高,不像 MD5 和 SHA-1 那样容易受到攻击,并且不像 SHA-2 那样容易受到长度扩展攻击。 hajimehoshi/ebitenhttps://github.com/hajimehoshi/ebiten Stars: 10.4k License: Apache-2.0 ebiten 是一个用于 Go 该项目解决了使用 Go 编程语言快速、轻松开发可在多个平台部署的 2D 游戏的问题。

    69310编辑于 2024-07-10
  • 来自专栏Rust语言学习交流

    【Rust项目推荐】Rust写的开发工具包dtool发布0.2.1

    进制转换, 数字的encode/decode,特殊的比如parity_codec里的Compact类型的encode/decode 本次升级增加了hash子命令,支持的hash算法有: MD5 SHA-1 SHA -2 224 SHA-2 256 SHA-2 384 SHA-2 512 SHA-2 512 truncate 224 SHA-2 512 truncate 256 SHA-3 224 SHA-3 256

    69110发布于 2019-12-25
  • 来自专栏Vamei实验室

    统计Go, Go, Go

    结束了概率论,我们数据之旅的下一站是统计。这一篇,是统计的一个小介绍。 统计是研究数据的学科。它包括描述数据,推测群体信息,判断假设的真伪。统计是一门实用学科。人们利用统计,寻找下一个NBA巨星,推测

    1K90发布于 2018-01-18
  • 来自专栏七夜安全博客

    go go go - beego

    第一节 Beego简介 beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API、Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计灵感来源于 tornado

    1.3K20发布于 2018-10-08
  • 来自专栏用户9859085的专栏

    哈希Hash竞猜游戏系统开发详解技术丨哈希竞猜游戏系统开发方案解析

    SHA-2/SHA-3:SHA-2和SHA-3作为SHA的升级版,目前业界认为其安全性适用于任何应用场景。 SHA-2生成消息摘要需要介绍的是SHA-3:SHA-3使用Keccak算法,它支持与 SHA-2 相同的哈希长度,但是其内部结构与 SHA 系列几乎完全不同。 2012年Keccak算法在NIST的SHA-3竞赛中击败了包括大名鼎鼎的Rivest带来的MD6在内的众多算法,成了SHA-3的标准算法,SHA-3 的目的是在必要时可以直接替代当前应用中的 SHA-

    88730编辑于 2022-06-29
  • 来自专栏程序那些事

    密码学系列之:NIST和SHA算法

    SHA2 SHA-2(Secure Hash Algorithm 2)也是由美国国家安全局(NSA)设计的一组加密哈希函数,于2001年首次公布,它们采用Merkle-Damgård结构。 SHA-2和SHA-1相比,包括了重大的变化。SHA-2系列包含六个哈希函数,分别是SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。 SHA-3并不是要取代SHA-2,因为目前还没有证明对SHA-2的重大攻击。但是由于MD5、SHA-0和SHA-1的成功攻击,NIST认为需要一种可替代的、不同的加密哈希,这就是SHA-3。

    1.1K11发布于 2021-06-09
  • 来自专栏大龄程序员的人工智能之路

    写给开发人员的实用密码学 - Hash算法

    其中有些已证明不安全(例如 MD5 和 SHA1 ),有些仍被认为是安全的(例如 SHA-2 、SHA-3 和 BLAKE2 )。下面让我们了解一下目前广泛使用的加密哈希算法。 SHA-2 SHA-2是一系列强大的密码哈希函数:SHA-256(256位哈希)、SHA-384(384位哈希)、SHA-512(512位哈希)等。 SHA-2算法是目前建议使用的Hash算法,在美国作为官方加密标准发布。 从设计上讲,哈希输出的位数越多,一般而言具有更高的安全性和更高的抗冲突性。 SHA-3 SHA-3算法并不是为了取代SHA-2算法,而是一种在设计上和SHA-2完全不同的算法,主要有四种算法,分别是SHA3-256、SHA3-512、SHA3-224、SHA3-384,输出的长度分别是 在相同的哈希长度下,SHA-3比SHA-2更安全。例如,SHA3-256比SHA-256提供更多的加密强度。 SHA-3被认为是高度安全的,在美国作为官方推荐的加密标准发布。

    2.7K20发布于 2020-12-29
  • 来自专栏程序那些事

    密码学系列之:NIST和SHA算法

    SHA2 SHA-2(Secure Hash Algorithm 2)也是由美国国家安全局(NSA)设计的一组加密哈希函数,于2001年首次公布,它们采用Merkle-Damgård结构。 SHA-2和SHA-1相比,包括了重大的变化。SHA-2系列包含六个哈希函数,分别是SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。 SHA-3并不是要取代SHA-2,因为目前还没有证明对SHA-2的重大攻击。但是由于MD5、SHA-0和SHA-1的成功攻击,NIST认为需要一种可替代的、不同的加密哈希,这就是SHA-3。

    89140发布于 2021-05-10
  • 来自专栏IT笔记

    支付宝支付密钥RSA1升级到RSA2

    介绍 SHA-1与SHA-2 SHA代表安全哈希算法。SHA-1和SHA-2是该算法不同的两个版本,它们的构造和签名的长度都有所不一样,但可以把SHA-2理解为SHA-1的继承者。 首先,人们一般把哈希值位数长度作为重要的区别,SHA-1是160位的哈希值,而SHA-2是组合值,有不同的位数,其中最受欢迎的是256位。

    5.3K30发布于 2018-11-22
  • 来自专栏小工匠聊架构

    PKI - 01 散列(Hash)函数

    散列函数也叫做HASH函数,主流的散列算法有MD5与SHA ( SHA-1 , SHA-2 【主流】)。散列函数的主要任务是验证数据的完整性。 SHA-2(Secure Hash Algorithm 2): SHA-2是SHA系列的后续版本,包括了一系列的哈希函数,如SHA-224、SHA-256、SHA-384、SHA-512等。 SHA-2通过使用不同的位数来产生不同长度的哈希值,例如SHA-256生成256位(32字节)的哈希值,SHA-512生成512位(64字节)的哈希值。 SHA-2被广泛认为是安全可靠的,目前仍然是主流的哈希函数之一,被广泛应用于数字签名、数据校验等领域。 而SHA-2则被认为是安全可靠的,是目前广泛采用的哈希函数。

    40800编辑于 2024-05-25
  • 来自专栏ionic3+

    Go回忆】Lets go!

    安装 在mac上,用brew安装很方便: brew install go 2. 查看环境 brew安装的好处是安装完还会配好环境变量,可以查看: go env 3. 运行 查看下效果: go run demo.go 5. 编译 生成二进制程序: go build demo.go 6. 交叉编译 生成跨平台程序: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go CGO_ENABLED=0 GOOS=windows GOARCH =amd64 go build main.go CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go 7. 总结 go的理念就是简单、简洁、高效,连IDE也只需普通的文本编辑器也可以胜任,看上述的短短内容就已经完成安装、demo开发和发布的功能,有兴趣的就来尝试一下吧。

    48431发布于 2018-08-20
  • 来自专栏GoLang那点事

    Go coding in go way

    Go coding in go way”,中文含义就是用“Go语言编程思维去写Go代码”。 这里要和大家交流的内容都是基于Go诞生七年多以来我个人对Go的设计者、Go team以及Go主流社区的观点和代码行为的整理、分析和总结。 由于Go语言上手容易,在转Go的初期大家很快就掌握了Go的语法。 Go语言的价值观的形成我觉得至少有三点因素 1、语言设计者&Unix文化 Go语言价值观形成是与Go的初期设计者不无关系的,可以说Go最初设计者主导了Go语言价值观的形成! 无论是Go语言设计还是Go语言使用,都受到上述价值观的影响。接下来我们逐个来看一下Go语言价值观主导下的Go语言编程思维,并看看每种编程思维在语言设计、标准库实现以及主流Go开源项目中的应用体现。

    61030发布于 2020-03-10
  • 来自专栏程序员小灰

    漫画:什么是SHA系列算法?

    SHA-2 SHA-2是一系列SHA算法变体的总称,其中包含如下子版本: SHA-256:可以生成长度256bit的信息摘要。 再看一下SHA-2系列算法,核心过程更复杂一些,把信息摘要分成了A,B,C,D,E,F,G,H八段。 其中SHA-256的每一段摘要长度是32bit,SHA-512的每一段摘要长度是64bit。

    51220编辑于 2022-07-05
  • 来自专栏golang与云原生

    【笔记】Go Coding In Go Way

    这些基本功能单元的累加就构成了Go应用,因此Go应用的本质就是一组Go包的集合。Go包还是编译时的最小单位。也就是说,Go编译器编译代码时会以包为单位进行编译,而不是以文件为单位。 Go包之间不能存在循环依赖,由于无环,包可以被单独编译,也可以并行编译;已编译的Go包的目标文件中记录了其所依赖包的导出符号信息。Go编译器在读取该目标文件时不需进一步读取其依赖包的目标文件。 在Go与C语言互操作(Interoperability)方面,Go更是提供了强大的支持。尤其是在Go中使用C,你甚至可以直接在Go源文件中编写C代码。 在如下一些场景中,可能会涉及到Go与C的互操作:1、提升局部代码性能时,用C替换一些Go代码。C之于Go,好比汇编之于C。2、嫌Go内存GC性能不足,自己手动管理应用内存。 testcontainers-go是一个Go语言开源项目,专门用于简化创建和清理基于容器的依赖项,常用于Go项目的单元测试、自动化集成或冒烟测试中。

    38910编辑于 2024-11-07
  • 来自专栏FreeBuf

    深度:为什么Google急着杀死加密算法SHA-1

    但有意思的是Google.com目前使用的也是SHA-1签名的证书,但证书将在3个月内过期,Google将从2015年起使用SHA-2签名的证书。 你可以使用一个SHA-1签名的伪造证书来冒充一个SHA-2签名的证书,因为浏览器只会查看SHA-1签名的伪造证书,并不知道存在一个“真正的”证书或证书应该使用SHA-2签名。 嘿嘿) 你需要提交一个新证书请求,让你的CA颁发一个使用SHA-2的新证书。 ,但CA才能决定是否向你颁发一个使用SHA-2签名的证书。 这也就意味着你要追踪你的CA是否颁发了SHA-2中间证书,并发向哪里了。我也一直在追踪不同的CA颁发的SHA-2中间证书的位置。

    2K60发布于 2018-02-05
  • 来自专栏设计模式

    深入理解SHA系列哈希算法:安全性的保障与演进

    因此,NIST推荐逐渐淘汰SHA-1,并转向更安全的SHA-2和SHA-3算法。 SHA-2的增强安全性:SHA-2是一系列哈希算法的总称,包括SHA-224、SHA-256、SHA-384和SHA-512等变体。与SHA-1相比,SHA-2提供了更高的安全性和更强的抗碰撞性。 SHA-3采用了与SHA-2完全不同的设计思路,具有更高的安全性和抗碰撞性。此外,SHA-3还提供了多种哈希长度选项,以适应不同的应用场景需求。 从SHA-0到SHA-1,再到SHA-2和SHA-3,每一个版本的更新都代表着密码学领域对安全性和性能的不断追求。在选择哈希算法时,应根据具体的应用场景和安全需求来选择合适的算法版本。

    3K00编辑于 2024-05-24
  • 来自专栏戚银技术成长之路

    Gogo get 自动代理

    最近发现技术交流群里很多人在询问 go get 墙外包失败的问题,大家给了很多解决方案: 从 Github 的代码库 clone 设置 GOPROXY 环境变量配置代理, 例如:GOPROXY=https ://goproxy.io 配置命令行代理,https_proxy 环境变量 使用 go mod replace 使用 Gopm 类似的工具 …… Go 的社区很活跃,国内 gopher 对 Go 的热情不会因为墙的存在而减少 上面的方法都是可行的,但是总有一些不尽人意,社区也一直在找更好的方法,我一直使用自动代理的方式获取墙外的包,可以支持所有 Go 原生拉取包操作,比如 go get、go mod、dep、godep、glide go get 自动代理的环境,以后需要访问外国网站操作的指令运行时加 proxy 就可以了,该方法并不只适用于 go get,任何需要命令行代理都可以使用。 前期我使用 go 的时候遇到下载不了的包时,就会在 go get 前加上 proxy 指令,但是我发现拉取 Github 包的效率非常低,本身国内现在访问 Github 已经很快了。

    2.1K20发布于 2019-11-04
  • 来自专栏北先生

    Go】Mac 升级 Go 版本

    upgrade go 123 brew updatebrew install gobrew upgrade go 下载镜像: ? 安装完成之后的目录: Shell cd /usr/local/go/bin 1 cd /usr/local/go/bin 查看系统 go 的信息: ? Shell which go cd /usr/local/bin rm go gofmt sudo ln -s /usr/local/go/bin/go go sudo ln -s /usr/local /go/bin/gofmt gofmt 12345678 which go cd /usr/local/bin rm go gofmt  sudo ln -s /usr/local/go/bin/go gosudo ln -s /usr/local/go/bin/gofmt gofmt 喜欢(0) 打赏

    8.7K20发布于 2021-08-09
  • go 并发编程; go concurrency

    使用锁,保证变量并发的正确性;由于没有接触过实际的工程场景,因此进行了简短的调研,下面是一些相关材料的记录; 深入Go并发编程研讨课:https://github.com/smallnest/dive-to-gosync-workshop https://golang.org/src/sync/map.go sync.map https://blog.csdn.net/a348752377/article/details/104972194

    43720发布于 2021-08-10
领券