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

    Md5加密秘钥加密哈希加密

    加密通用类: public class EncryptClass { ///

    /// 返回MD5加密字符串 /// < return null; } MD5 md5Hash = MD5.Create(); // 将输入字符串转换为字节数组并计算哈希数据 Stringbuilder 来收集字节并创建字符串 StringBuilder sBuilder = new StringBuilder(); // 循环遍历哈希数据的每一个字节并格式化为十六进制字符串 } // 返回十六进制字符串 return sBuilder.ToString(); } #region 密钥加密解密 //方法 //加密方法 public static string Encrypt(string pToEncrypt, string sKey)

    6.8K90发布于 2018-01-18
  • 来自专栏建帅技术分享

    哈希算法(hash)加密解密

    一、哈希算法(hash)加密解密介绍 哈希,英文叫做 hash。 哈希函数(hash function)可以把 任意长度的数据(字节串)计算出一个为固定长度的结果数据。 也就是说,不能通过 哈希值 反过来计算出 源数据。 所以哈希和我们常说的加密解密不同。 'blake2b', 'blake2s', 'sha3_224', 'sha3_256', 'sha3_384', 'sha3_512', hash算法可以对很大的数据产生比较小的哈希值,而加密算法源数据很大,加密后的数据也会很大 加解密算法 可以分为 对称加密 以及 不对称加密 对称加密加密和解密 使用相同的 密钥 。 比较常见的 对称加密算法有: AES, RC4, DES, 3DES, IDEA 等。 其中安全等级较高的是 AES。

    8.3K20编辑于 2022-08-24
  • 来自专栏系统开发案例

    幸运哈希竞猜游戏系统开发加密哈希算法

    哈希算法只需满足把一个散列对象映射到另一个区间的需求,因此根据使用场景的不同,可将哈希算法分为加密哈希与非加密哈希。    SHA-256实现原理   常量初始化   SHA-256算法中用到了8个哈希初值以及64个哈希常量,其中,8个哈希初值是对自然数前8个质数(2,3,5,7,11,13,17,19)的平方根的小数部分取前 为什么不可碰撞性对加密哈希算法如此重要? 从SHA-256算法的实现步骤可以看出,加密哈希的逆向计算几乎是不可能的,暴力破解法的成本也太高,因此对加密哈希算法所谓的攻击实际是利用哈希碰撞为突破口进行数据伪造。 专用哈希函数加密:使用bcrypt等专门用来密码加密哈希函数进行加密,这类函数通常运算时间较长,大大增加了攻击成本。   

    94740编辑于 2022-06-24
  • 来自专栏Python每日一库

    mmh3:超高性能的非加密哈希Python库

    在处理大规模数据时,我们经常需要快速计算哈希值来进行数据去重、布隆过滤器实现或内容指纹识别。传统的hash()函数或md5等加密哈希虽然可用,但计算速度往往不尽如人意。 今天要介绍的MurmurHash3(通过mmh3库实现)就是一个超高性能的非加密哈希算法,它在保证哈希质量的同时,计算速度可以达到传统算法的5-10倍。 核心功能详解mmh3提供了多个哈希函数变体,以适应不同场景:import mmh3# 32位整数哈希text = "Hello, World!" hash_32 = mmh3.hash(text) # 返回32位整数print(f"32位哈希值: {hash_32}")# 64位整数哈希hash_64 = mmh3.hash64(text) 相比传统的hash()函数,它不仅速度更快,而且提供了更丰富的哈希位数选择。虽然mmh3不适用于密码学场景(因为它是非加密哈希),但在需要快速计算哈希值的场景下,它的表现令人印象深刻。

    79910编辑于 2025-01-16
  • 来自专栏caoayu的分享

    关于前端哈希加密密码的思考

    在前端哈希密码是否是个不错的方案? 为了防止用户或者管理员的密码泄漏或者数据库信息泄漏出去,web应用普遍采用了在后端将密码哈希以后存储在数据库中,前端提供密码,由后端进行哈希后与数据库进行对比,既然最终需要对比的是哈希过得密码,那么为什么不直接在前端将密码哈希直接交给后端存储在数据库呢 答案其实很简单,我们将密码哈希是为了防止恶意的伪装登陆,如果我们的数据库中的密码泄漏了出去,那我们可以直接用数据库中存储的前端哈希过的密码直接登陆,后端无法进行验证,所以哈希密码的步骤要在后端进行,不只是对密码仅仅做一次哈希 通常我们的做法是指定自己的一套规则,可以使用加盐,即将字符串哈希过后,拼接上自定义的字符串再进行二次哈希,这样就大大的提高了安全的级别,有时对于要求更高的api的说仅仅加盐还是不够的,还需要认证,鉴权等步骤

    1.2K20发布于 2020-09-23
  • 来自专栏小工匠聊架构

    加密与安全_深入了解哈希算法

    哈希算法是一种重要的加密算法,其核心思想是将任意长度的数据映射为固定长度的哈希值,这个哈希值通常用于验证数据的完整性、索引数据和加速数据查找。 SHA-512适用于对抗更严格的安全攻击,如密码学中的高级加密标准(AES)等。 根据碰撞概率,哈希算法的输出长度越长,就越难产生碰撞,也就越安全。 密码学中的数字签名:哈希算法可以用于生成数字签名,用于验证数据的来源和完整性。发送方可以通过将数据的哈希值使用私钥进行加密生成数字签名,并将数字签名附加在数据上发送给接收方。 与数字签名不同的是,消息认证码是使用对称密钥算法生成的,发送方和接收方共享同一个密钥,发送方使用密钥对数据的哈希值进行加密生成消息认证码,接收方使用相同的密钥解密消息认证码并计算数据的哈希值,然后比对两者是否一致 防止彩虹表攻击:在存储密码等敏感信息时,使用哈希算法进行加密是一种常见的做法。然而,为了防止彩虹表攻击,需要对每个密码额外添加随机数(盐值)进行加盐处理,增加破解的难度,提高密码存储的安全性。

    1.1K00编辑于 2024-05-26
  • 一文看透对称加密、非对称加密哈希加密的本质区别

    例如,将每个字母向后移动 3 位,那么 "A" 就变成 "D","B" 变成 "E",以此类推。 虽然凯撒密码在当时能够满足基本的加密需求,但在现代计算机面前却不堪一击。 3DES(Triple DES):通过对数据应用三次 DES 加密来提高安全性,但由于其效率较低且密钥长度仍不够理想,正逐渐被 AES 取代。 -- Swagger3用于API文档 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter 与对称加密和非对称加密不同,哈希加密是单向的—— 它只能将明文转换为哈希值(又称消息摘要),而无法从哈希值反推出原始明文。 、密码存储 加密速度 非常快 较慢(比对称加密慢 1000 倍以上) 快 输出长度 与输入长度相关 与密钥长度相关 固定长度(与输入长度无关) 代表算法 AES、DES、3DES RSA、ECC、DSA

    11810编辑于 2026-04-14
  • 来自专栏Michael阿明学习之路

    TinyURL 的加密与解密(哈希

    要求:设计一个 TinyURL 的加密 encode 和解密 decode 的方法。 你的加密和解密算法如何设计和运作是没有限制的,你只需要保证一个URL可以被加密成一个TinyURL,并且这个TinyURL可以用解密方法恢复成原本的URL。 哈希解题 用简单的 int 映射成网址,进行转化 ? > m; public: Solution():id(0){} string encode(string longUrl) { m[++id] = longUrl;//网址存入哈希表 shortUrl) { return m[stoi(shortUrl.substr(7,shortUrl.size()-7))]; //找到需要解码的子串并转成id,取哈希表里读取原网址

    56220发布于 2021-02-20
  • 来自专栏weixuqin 的专栏

    redis 学习(3)-- 哈希类型

    redis 学习(3)-- 哈希类型 介绍 redis 中哈希键值结构: ? 可以看出:哈希键值包括 key,field,value 这三部分,即键,属性,值这三部分。 删除哈希表中一个或多个field hexists key field 判断哈希表中,指定field是否存在 hlen key 获取哈希表中字段的数量 hmget key field1 [field2.. 同时将一个或多个field-value对设置到哈希表中 hincrby key fiel increment 为哈希表中指定field的值加上一个整型增量 hsetnx key field value key 含义:获取哈希表中所有字段和值 时间复杂度为O(n),不建议使用 hkeys key 含义:获取哈希表中的所有字段 时间复杂度为O(n),不建议使用 hvals key 含义:获取哈希表中的所有值 3. Hash 实现 hset user:1:info: age 41 hset user:1:info link tv.sohu.com 将用户信息存到 哈希表中。

    95820发布于 2019-05-31
  • 来自专栏高性能服务器开发

    (三)dict哈希结构3

    void *key) { return dictGenericDelete(ht,key,1); } /* Destroy an entire dictionary */ /* 清空整个哈希表 ->ht[0].table; integers[1] = d->ht[0].size; integers[2] = d->ht[0].used; integers[3] Basically: * * Result = hash(hash(hash(int1)+int2)+int3) ... * 3) When the returned cursor is 0, the iteration is complete. * 3) The reverse cursor is somewhat hard to understand at first, but this * comment is supposed

    68380发布于 2018-04-13
  • 来自专栏波波烤鸭

    shiro教程3(加密)

    常见算法 算法 描述 DES(Data Encryption Standard) 数据加密标准,速度较快,适用于加密大量数据的场合; 3DES(Triple DES) 是基于DES,对一块数据用三个不同的密钥进行三次加密 123456","aaa",2); System.out.println(md5); } 输出的结果: e10adc3949ba59abbe56e057f20f883e 88316675d7882e3fdbe066000273842c //88316675d7882e3fdbe066000273842c 1次迭代的密文 //a7cf41c6537065fe724cc9980f8b5635 2次迭代的密文 String pwd = "88316675d7882e3fdbe066000273842c"; // 验证密码 AuthenticationInfo info = new SimpleAuthenticationInfo // 2.通过Factory对象获取SecurityManager对象 SecurityManager securityManager = factory.getInstance(); // 3.

    1.1K20发布于 2019-04-02
  • 来自专栏Java帮帮-微信公众号-技术文章全总结

    shiro教程3(加密)

    私钥解密公钥加密数据,公钥解密私钥加密数据(私钥公钥可以互相加密解密)。 加密算法分类 单向加密 单向加密是不可逆的,也就是只能加密,不能解密。 e10adc3949ba59abbe56e057f20f883e 88316675d7882e3fdbe066000273842c a7cf41c6537065fe724cc9980f8b5635 盐值的作用 //88316675d7882e3fdbe066000273842c 1次迭代的密文 //a7cf41c6537065fe724cc9980f8b5635 2次迭代的密文 String pwd = "88316675d7882e3fdbe066000273842c"; // 验证密码 AuthenticationInfo info = new SimpleAuthenticationInfo // 2.通过Factory对象获取SecurityManager对象 SecurityManager securityManager = factory.getInstance(); // 3.

    96030发布于 2019-12-13
  • 来自专栏后端开发从入门到入魔

    区块链基础知识(上):区块链基本原理、加密哈希、公钥加密

    加密哈希加密哈希的作用是创建一个唯一的指纹或标识,用于表示输入数据。无论输入数据有多大或多小,哈希函数都会生成相同长度的哈希值。这意味着即使输入数据发生微小的改变,生成的哈希值也会完全不同。 其次,加密哈希是不可逆的。这意味着无法通过观察哈希值来推断出输入数据的内容。哈希函数的设计使得即使输入数据发生微小的变化,其生成的哈希值也会有很大的差异。 最后,加密哈希应该是唯一的。 哈希处理:对于要进行数字签名的文档或消息,你需要使用加密哈希算法对其进行哈希处理。加密哈希算法会将文档或消息转换为一个固定长度的哈希值。常用的加密哈希算法包括SHA-256和SHA-512等。 私钥加密:使用你的私钥对哈希值进行加密。这个加密操作会生成一个数字签名,这个签名是唯一与你的私钥相关联的加密值。 发送签名和文档/消息:将数字签名和原始文档或消息一起发送给接收方。 使用 PKC 和加密哈希验证文档/消息 交易哈希链使用数字签名转让数字资产所有权;每个交易记录都保留有对哈希链中上一个交易的加密反向链接 交易哈希链是一种用于转让数字资产所有权的机制,它使用数字签名来验证交易的有效性

    3.8K22编辑于 2024-03-12
  • 来自专栏全栈程序员必看

    哈希算法是对称算法还是非对称算法_对称加密和非对称加密原理

    哈希算法( Hash )又称摘要算法( Digest ), 作用:对任意一组输入数据进行计算,得到一个固定长度的输出摘要。 哈希算法的目的:为了验证原始数据是否被篡改。 :输出长度64字节512位 Hmac算法:(密钥算法); 在前面讲到哈希算法时,我们说,存储用户的哈希口令时,要加盐存储,目的就在于抵御彩虹表攻击。 输出和原有的哈希算法长度一致。 } 和 MD5 相比,使用 HmacMD5 的步骤是: 1 通过名称 HmacMD5 获取 KeyGenerator 实例; 2 通过 KeyGenerator 创建一个 SecretKey 实例; 3 cipher.doFinal(input); } } 1 根据算法名称/工作模式/填充模式获取 Cipher 实例; 2 根据算法名称初始化一个 SecretKey 实例,密钥必须是指定长度 3

    1.6K20编辑于 2022-11-01
  • 来自专栏mathor

    枚举+优化(3)——哈希表优化实例

    i],a[j])); cout<<myset.size()<<endl; return 0; } 思考:优化,减少枚举变量,只枚举a[i]  如果我们只枚举a[i],比如a[i] = 3, 那么如果存在数对(a[i],a[j] + k),假设我枚举数对里较小的值是3,那么根据差是2,较大的肯定就是5,所以,问题就变成“查找a[i] + k在不在输入的数组里” //时间复杂度O(N) #include

    60550发布于 2018-06-07
  • 来自专栏技术一点点成长

    哈希哈希

    其内部实现是通过把键(key)码映射到表中的一个位置来访问记录,其中的“映射”也就是哈希函数,而“表”即哈希表。本文将重点介绍实现哈希表的2种方法:拉链法和线性探测法。 1.实验数据 A 2 C 1 B 6 B 11 H 1 J 3 数据说明:为了跟前面博文保持一致,本文的数据依然采用键值对(Key-Value)的形式。哈希表中主要有"存"和"取"操作。 2.HashMap实现   实现哈希表主要分以下两步: step1:定义哈希函数   哈希函数的实现不唯一,在此我们以java自带的hashCode()为基础进行修改。 ------------ 拉链法与线性探测法的存储比较: 3.Java代码实现 a.拉链法code: 1 package com.gdufe.hash; 2 3 import java.io.File sequence.get("B")); 45 46 } 47 48 } 辅助数据结构---顺序链表code: 1 package com.gdufe.hash; 2 3

    74610编辑于 2022-08-09
  • 来自专栏全栈程序员必看

    python 3Des 加密

    import hashlib; from Crypto.Cipher import DES3 import base64 def create_key(sk):     r=hashlib.md5 return s  key=’2345’#秘钥 b2bpwd=”oohbv”     keys=create_key(key)     ss=init_str(b2bpwd)     des3= DES3.new(keys,DES3.MODE_ECB)     res2=des3.encrypt(ss)     b2bencryptkey=  base64.standard_b64encode

    1.5K40发布于 2021-11-29
  • 来自专栏python3

    DES3DESAES加密

    3DES 3DES是DES加密算法的一种模式,它使用3条64位的密钥对数据进行三次加密。 DES使用56位密钥和密码块的方法,而在密码块的方法中,文本被分成64位大小的文本块然后再进行加密。比起最初的DES,3DES更为安全。 3DES(即 Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),是DES的一个更安全的变形。 它以DES为基本模 块,通过组合分组方法设计出分组加密算法,其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明 文,C代表密表,这样, 3DES加密过程为 :C=Ek3(Dk2(Ek1(P))) 3DES解密过程为:P=Dk1((EK2(Dk3(C))) 具体的加/解密过程如图所示。

    1.4K30发布于 2020-01-08
  • 来自专栏cjz的专栏

    Spring Security安全框架中BCrypt强哈希加密算法使用

    密码应该通过某种方式进行加密。 如今已有很多标准的算法比如SHA或者MD5再结合salt(盐)使用是一个不错的选择。 废话不多说! 直接开始 SpringBoot 中提供了Spring Security: BCryptPasswordEncoder类,实现Spring的PasswordEncoder接口使用BCrypt强哈希方法来加密密码 artifactId>spring‐boot‐starter‐security</artifactId> </dependency> 注意:Spring Security 它默认的是拦截所有路径,但是只是需要它的加密算法 encoder.encode(需要加密的密码) String newpassword = encoder.encode(admin.getPassword());//加密后的密码 admin.setPassword encoder.matches(password,admin.getPassword())){ return addmin; { else{ return null; } } 到此密码加密就完成了

    1K30编辑于 2022-12-21
  • 来自专栏python-爬虫

    node启动js-3DES-ECB加密,python-3DES-ECB加密

    一.node启动js-3DES-ECB加密 var arguments = process.argv.splice(2); // console.log('所传递的参数是:', arguments); var password = arguments[0]; //加密的password var t= arguments[1]; //加密的txt var forge = require('node-forge 加密 from Crypto.Cipher import DES3 import base64 import json BS = DES3.block_size def pad(s): return MODE_ECB def encrypt(self, text): text = pad(text) cryptor = DES3.new(self.key, plain_text.decode("utf-8")).rstrip('\0') out = unpad(st) return out code = json.dumps(text) //加密的内容

    1.3K10发布于 2020-07-02
领券