密码学-hash加密

2023-11-14

以下代码分别为乘法hash,sha256,md5,ripemd160的使用方法:

package main

import (
    "fmt"
    "crypto/sha256"
    "os"
    "io"
    "crypto/md5"
    "encoding/hex"
    "golang.org/x/crypto/ripemd160"
)

func main() {
    //通过乘法hash对"hello world"进行加密
    fmt.Println(bernstein("hello world"))

    Mysha256()

    MyIOSha256()

    MyMd5()

    MyRipemd160()
}
//乘法hash方法
func bernstein(key string) int {
    hash := 0
    var i int
    for i = 0; i < len(key); i++ {
        hash = 33*hash + int(key[i])
    }
    return hash
}

//调用自带的sha256库
func Mysha256() {
    fmt.Println("sha256--------------------------------")
    sum := sha256.Sum256([]byte("hello world"))
    fmt.Printf("%x\n", sum)
    //第二种调用方法
    h := sha256.New()
    h.Write([]byte("hello world"))
    fmt.Printf("%x\n", h.Sum(nil))
}

//将文件中的内容进行加密
func MyIOSha256() {
    //mac下要写绝对路径
    f, _ := os.Open("/Users/liuyang/gocode/src/MyHash/text.txt")
    defer f.Close()
    h := sha256.New()
    io.Copy(h, f)
    fmt.Printf("%x\n", h.Sum(nil))
}

//调用go环境中自带的md5
func MyMd5() {
    fmt.Println("MD5--------------------------------")
    data := []byte("hello world")
    //第一种方式
    s := fmt.Sprintf("%x", md5.Sum(data))
    fmt.Println(s)

    //第二种方式
    h := md5.New()
    h.Write(data)
    //十六进制转字符串
    s = hex.EncodeToString(h.Sum(nil))
    fmt.Println(s)
}

//ripemd160,利用hash原理,实现加密
func MyRipemd160()  {
    fmt.Println("Ripemd160--------------------------------")
    hasher:=ripemd160.New()
    hasher.Write([]byte("hello world"))
    hashString:=fmt.Sprintf("%x",hasher.Sum(nil))
    fmt.Println(hashString)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

密码学-hash加密 的相关文章

  • java中带有二维键的映射

    我想要一个在 Java 中由两个键索引的映射 在其中使用两个键放置和检索值的映射 需要明确的是 我正在寻找以下行为 map put key1 key2 value map get key1 key2 returns value map ge
  • MD5 和 SHA1 的安全性如何

    嘿 只是一个简单的问题 因为我想更多地了解哈希函数 我知道它们如何工作以及它们做什么 但是它们的安全性如何 我希望得到一个简单的答案而不是链接 因为我从来没有发现它们有用 现在的技术 两者都可以cracked http www hackth
  • 使用哈希检查具有 $_POST 值的页面是否已刷新

    当将表单发布到同一个PHP页面时 正确的方法是什么来查找页面是否被意外刷新而不是再次提交 这是我现在正在使用的 tmp implode POST myHash md5 tmp if isset SESSION myHash SESSION
  • 为什么 Java 中的 hashCode() 可以对不同对象返回相同的值?

    引用我正在读的书中的一段话首先Java http www amazon co uk Head First Java Kathy Sierra dp 0596009208 关键是 哈希码可以相同 但不一定保证对象相等 因为使用的 哈希算法 h
  • Rails 4 - 将地址保存为数据库中的一列

    我是 Rails 新手 正在开发一个简单的应用程序 我的 ERD 中有一个名为 Client 的模型 并且希望保存每个客户的地址 我最初的想法是将地址保存为单独的字段 即 rails g model Client address first
  • 在同步函数中使用 javascript `crypto.subtle`

    在javascript中 是否可以使用浏览器内置的sha256哈希 https developer mozilla org en US docs Web API SubtleCrypto digest Converting a digest
  • 如何将两个不同的哈希数组中的值添加在一起?

    我有两个哈希数组 哈希值的键不同 player scores1 first name gt Bruce score gt 43 time gt 50 first name gt Clark score gt 45 minutes gt 20
  • 为什么即使我的哈希码值相同,“==”也会返回 false

    我写了一个像这样的课程 public class HashCodeImpl public int hashCode return 1 public static void main String args TODO Auto generat
  • diff 文件仅比较每行的前 n 个字符

    我有2个文件 我们将它们称为 md5s1 txt 和 md5s2 txt 两者都包含a的输出 find type f print0 xargs 0 md5sum sort gt md5s txt 不同目录下的命令 许多文件被重命名 但内容保
  • 哈希表的空间复杂度是多少?

    具有 32 位键和指向单独存储的值的 32 位指针的哈希表的大小是多少 是 2 32 个槽 4 字节 键 4 字节 指向值的指针 4 10 9 4 4 32GB 我想了解哈希表的空间复杂度 我认为你问错了问题 数据结构的空间复杂度表示它占用
  • 使用 md5 加密的 PHP 和 Mysql 查询出现问题

    我使用普通的 php mysql 插入查询并使用 md5 加密密码 这是插入查询 sql mysql query INSERT INTO user username password role approved values usernam
  • Rails/Ruby 合并两个具有相同键、不同值的哈希值

    我有两个想要合并的哈希值 它们看起来像这样 Hello gt 3 Hi gt 43 Hola gt 43 第二个哈希看起来像 Hello gt 4 Hi gt 2 Bonjour gt 2 我想合并这两个哈希数组 使结果看起来像 Hello
  • 使用 secp256r1 曲线和 SHA256 算法生成 ECDSA 签名 - BouncyCastle

    我正在尝试使用带有 secp256r1 曲线 P256 的 ECDSA 和用于消息哈希的 SHA256 算法生成签名 我也在使用 Bouncy Castle 库 下面的代码 public class MyTest param args pu
  • ruby 字符串到哈希值的转换

    我有一个这样的字符串 str uu p xx m yy n zz m 我想知道如何将给定的字符串转换为哈希值 即我的实际要求是 有多少个值 符号之前 有m n和p 我不需要计数 我需要一个精确的值 这样输出效果会更好 m gt xx zz
  • 将“String”转换为 c# .net 中 MD5“String”的 Base64 编码

    如何将我的密码 字符串 转换为 MD5 字符串 的 Base64 编码 就像这个字符串 password to X03MO1qnZdYdgyfeuILPmQ 请在这里帮助我 或者只是让我知道如何转换这个技术 password to X03M
  • 从函数返回哈希值的最佳 Perl 实践是什么?

    我正在考虑将哈希引用传递给函数或从函数返回数据的最佳实践 一方面 仅将输入值传递给函数并仅返回输出变量似乎很直观 然而 在 Perl 中传递哈希值只能通过引用来完成 因此有点混乱 而且似乎更有可能犯错误 另一种方法是在输入变量中传递引用 但
  • md5 哈希冲突。

    如果从 1 数到 X 其中 X 是第一个与前一个数字发生 md5 冲突的数字 那么 X 是哪个数字 我想知道如果我使用 md5 作为序列号 在发生冲突之前我可以期望能够枚举多少个单元 Theoretically you can expect
  • 与 6 位随机字母数字代码发生冲突的概率是多少?

    我使用以下 Perl 代码生成随机字母数字字符串 仅限大写字母和数字 用作 MySQL 数据库中记录的唯一标识符 数据库的行数可能会保持在 1 000 000 行以下 但实际的绝对最大值约为 3 000 000 行 我是否有 2 条记录具有
  • mysql 使用什么样的哈希?

    我正在编写类似于 phpMyAdmin 的自己的代码 但我需要用户能够使用 mysql 数据库中的用户名和密码登录 我需要知道mysql数据库使用什么样的哈希来存储每个用户的密码 我检查了 dev mysql com 寻找答案 但除了以 开
  • 为什么我从 c# 到 js 得到不同的 MD5 哈希值?

    我有一个用于加密密码的 C 函数 System Security Cryptography MD5CryptoServiceProvider md5Provider new System Security Cryptography MD5C

随机推荐

  • 卷积神经网络(Convolutional Neural Network)总结

    转自 http blog sina com cn s blog 870a639201019pee html 相关网站 CNNs应用的最成功的一个例子 Yann LeCun 曾经是Hinton组的research associate http
  • 第六章 生命周期和 Ajax 服务端通信

    6 1 Vue 实例生命周期 6 1 1 生命周期钩子函数 每个 Vue 实例在被创建时都要经过一系列的初始化过程 生命周期分为三大阶段 初始化显示 更新显示 销毁Vue实例 初始化阶段的钩子函数 beforeCreate 实例创建前 数据
  • Qt中QObject::sender()的用法

    当某一个Object emit一个signal的时候 它就是一个sender 系统会记录下当前是谁emit出这个signal的 所以你在对应的slot里就可以通过 sender 得到当前是谁invoke了你的slot 对应的是QObject
  • WebRTC学习记录(2):播放音频文件原理一探

    同样的 根据上篇WebRTC学习记录 1 采集microphone到文件原理实践 讲解 我还是需要有一个可运行的例子 经过多方研究 得到如下的例子 include webrtc base ssladapter h include webrt
  • C++中的引用

    引用的概念 引用可以看作一个已定义变量的别名 引用的语法 Type name var 普通引用在声明时必须用其它的变量进行初始化 声明时必须初始化 引用的使用举例 a和b指代的都是同一段内存空间 程序输出的结果 a 5 b 5 a和b的地址
  • vue动图加载图片不能正确显示的解决方法

    vue动图加载图片不能正确显示的解决方法 解决核心 代码 运行结果 上次解决过一次 没有记录 后来发现有小伙伴问我这个问题 我今天就顺手记录一下 具体的原因我这里就不详细说 加载不出来简略的原因是vue简析地址时候把你原的地址当做了一个模块
  • jupyter notebook快捷键

    Jupyter Notebook的快捷键包括 Ctrl Enter 运行当前单元格 Shift Enter 运行当前单元格并转到下一个单元格 Alt Enter 运行当前单元格并在下面插入新单元格 Ctrl S 保存文件 Ctrl Z 撤消
  • 回调函数

    单线程的时候同步的话 很容易阻塞在那边 用户体验极差 例如 异步是可以多线程的 因为UI主线程一旦阻塞整个界面就卡死了 一旦异步 两个线程下一个可以后台处理数据 一个可以做UI显示 js是单线程的 如果所有的操作 ajax 获取文件等I O
  • mmsegmentaion环境配置cuda11.0+pytorch1.7.1

    参考 https blog csdn net CSDNxiaoh article details 125321921 官方文档 https gitcode net mirrors open mmlab 1 创建虚拟环境 conda crea
  • LVGL-tileview控件

    控件特点 以page为基础扩展的控件 增加了释放后会有动画定格效果 lv tileview set tile act tileview ext gt act id x x move ext gt act id y y move true 切
  • 区块链-Web3.0-什么是Web3.0?

    一 什么是Web 3 0 Web 3 0 也被称为 去中心化Web 或 智能Web 是互联网的下一代 它使用了分布式系统技术 区块链技术和智能合约等新型技术 旨在构建一个更加去中心化 安全 透明和智能的互联网 Web 3 0 可以带来更广泛
  • 语言模型与数据集

    1 语言模型 给定文本序列x1 xT 其目的是估计联合概率p x1 xT 其应用包括做预训练模型 生成文本 给定几个词不断使用xt p xt x1 xt 1 生成后续文本 和判断多个序列中那个更常见 2 使用计数建模 N元语法 3 读取长序
  • Redis之SortedSet

    0 字符串String 1 哈希表Hash 2 列表List 3 集合Set 例子 4 有序集合SortedSet 例子myzset 5 发布 订阅Pub Sub 6 事务Transaction 7 脚本Script 8 连接Connect
  • R中设置图形参数--函数par()详解

    R有着非常强大的绘图功能 我们可以利用简单的几行代码绘制出各种图形来 但是有时候默认的图形设置没法满足我们的需要 甚至会碰到各种各样的小问题 如坐标轴或者标题出界了 或者图例说明的大小或者位置遮挡住了图形 甚至有时候默认的颜色也不能满足我们
  • 算法竞赛个人注意事项

    浅浅记录一下自己在算法竞赛中的注意事项 数据类 注意看数大小 数学库中的函数尽量加上 1 0 转成double 防止整型溢出 int型相乘如果可能溢出 乘 1LL 数据范围大于1e6 注意用快读 浮点数输入输出 少用float scanf
  • 北大肖臻老师<<区块链技术>>笔记2

    比特币的数据结构 这里着重研究一下hash pointers 哈希指针 首先普通指针只保存地址 hash指针不仅有保存地址的功能 还有保存哈希值的功能 这里保存哈希值可以用来检测数据是否被篡改 比特币中基本的数据结构是区块链 一个个块用链表
  • 如何提高少样本学习中的参数有效性以及数据有效性

    原创作者 康德 链接 https arxiv org abs 2110 06274 Github https github com microsoft LiST 本文提出一种在少样本学习情况下对大型预训练语言模型 PLMs 进行有效微调的方
  • 台式计算机BIOS怎么查,各种台式电脑主板查看硬盘开启项的流程

    进入bios设置U盘启动方法 不同的bios会有所不同 Phoenix AwardBIOS 2010年之后的电脑 1 开机按Del键进入该BIOS设置界面 选择高级BIOS设置Advanced BIOS Features 2 高级BIOS设
  • ESP32 M5 超级问卷星:轻松收集数据

    作者 默 不知不觉疫情已持续 3 年了 最近门卫王大爷很苦恼 因为领导要求所有进入单位的人员与车辆按照防疫要求进行登记 登记的内容有来访人员的车牌号 姓名 性别 体温 联系电话 被访人及其进入单位的时间 等 大爷年纪大了 有些时候记性也不太
  • 密码学-hash加密

    以下代码分别为乘法hash sha256 md5 ripemd160的使用方法 package main import fmt crypto sha256 os io crypto md5 encoding hex golang org x