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

    Python实现Hash33加密算法

    今天在研究QQ登陆的时候又发现一个值是和上次bkn加密方式有点像的,然后这次似乎看到了名字Hash33 然后这里就做一个笔记吧,说不定下次还有用。 def hash33(t): e = 0 for i in range(len(t)): e += (e << 5) + ord(t[i]) return 2147483647

    68520编辑于 2022-07-14
  • 来自专栏我是攻城师

    Java中4大基本加密算法解析

    简单的java加密算法有: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorithm ,安全散列算法) HMAC(Hash Message Authentication Code,散列消息鉴别码) 1. BASE64 严格地说,属于编码格式,而非加密算法 主要就是BASE64Encoder、BASE64Decoder两个类,我们只需要知道使用对应的方法即可。 4.HMAC HMAC(Hash Message Authentication Code,散列消息鉴别码,基于密钥的Hash算法的认证协议。 java实现代码: package com.cn.单向加密; /* HMAC HMAC(Hash Message Authentication Code,散列消息鉴别码,基于密钥的Hash算法的认证协议

    2.7K50发布于 2018-05-11
  • 来自专栏阿沐教你学知识

    面试系列-4 hash应用场景分析实践

    ; -- 终端查询 127.0.0.1:6379> HGETALL user:info:1001 1) "user_id" 2) "1001" 3) "user_name" 4) "\xe6\x9d\ : image.png 进行对数据的参数解析如下: 1、zlbytes:存储压缩列表的内存使用数量(4个byte无符号整数),通过zlbytes可以设置列表内存大小。 2、zltail:记录entry距离起始地址偏移量,占4个byte。 3、zllen:记录列表节点entry的总数目,占用2个byte。 4、entry:列表存储数据的节点,类型可字节数组或整数。 保存了需要传给上述特定函数的可选参数; 3、ht[2]:是两个哈希表,一般情况下,只使用ht[0],只有当哈希表的键值对数量超过负载(元素过多)时,才会将键值对迁移到ht[1],这一步迁移被称为rehash(重哈希); 4、 还好没有继续问 哈希算法、哈希冲突(collision)、hash扩展与收缩、渐进式hash这些知识点,不然真就废了,肯定答不上来。

    1.1K50发布于 2021-05-31
  • 来自专栏陈大剩博客专栏

    Redis Hash(Hash) 复习

    应用场景 Hash也可以同于对象存储,比如存储用户信息,与字符串不一样的是,字符串是需要将对象进行序列化(比如json序列化)之后才能保存,而Hash则可以讲用户对象的每个字段单独存储,这样就能节省序列化和反序列的时间 第一维 hash 的数组位置碰撞时,就会将碰撞的元素使用链表串接起来。 1 "zhangsan2" 获取给定字段多值(HMGET) # 返回给定字段值,不存在返回nil # HMGET key field [field ...] > HMGET myhash 1 2 3 4 1) "zhangsan2" 2) "lisi" 3) "wangwu1" 4) (nil) 获取所有的字段和值(HGETALL) # 获取所有的字段和值 # 返回字段及字段值。 " 3) "key:9998" 4) "9998" 5) "key:9905" .... 221) "key:9962" 222) "9962

    2.4K30编辑于 2023-03-06
  • 来自专栏算法半岛

    Hash表(一)——Hash函数

    这里先讲解 Hash函数。 Hash函数 从上面的图可以观察到,中间的部分的部分为 Hash函数,也称为散列函数。它在散列表中起着关键作用。 Hash函数一般使用 hash(key)表示,其中 key表示元素的键值部分, hash(key)的表示经过 Hash函数计算得到的 Hash值(散列值)。 不同的应用实例 Hash函数不同,该怎么去构造 Hash函数,一般遵循一下三条: Hash函数计算得到的散列值是一个非负整数; 如果 key1==key2,那么 hash(key1)==hash(key2 =key2,那么 hash(key1)!=hash(key2). 对于第一条很好理解,因为数组的下标是从0开始,所以 Hash函数生成的 Hash值也需要是非负整数。 对于第二条,相同的 key经过 Hash函数处理后得到的 Hash值应该也是相同的。

    2.3K30发布于 2019-07-10
  • 来自专栏IDE激活码系列

    加密算法

    加密算法是旅居瑞士中国青年学者来学嘉和著名密码专家J.Massey于1990年提出的。它在1990年正式公布并在以后得到增强。 类似于DES,IDEA算法也是一种数据块加密算法,它设计了一系列加密轮次,每轮加密都使用从完整的加密密钥中生成的一个子密钥。与DES的不同处在于,它采用软件实现和采用硬件实现同样快速。 64-位数据分组被分成4个16-位子分组:xl,X2,x3,x4。这4个子分组成为算法的第一轮的输入,总共有8轮。 (4)X4和第四个子密钥相乘。(5)将第(1)步和第(3)步的结果相异或。·(6)将第(2)步和第(4)步的结果相异或。(7)将第(5)步的结果与第五个子密钥相乘。 (4) X4和第四个子密钥相乘。最后,这4个子分组重新连接到一起产生密文。产生子密钥也很容易。这个算法用了52个子密钥(8轮中的每一轮需要6个,其他4个用与输出变换)。

    88720编辑于 2023-07-16
  • 来自专栏静默虚空的博客

    加密算法

    这是一个分组变化的过程,3个8位二进制码和4个6位二进制码的长度都是24位(3*8 = 4*6 = 24)。 (4)对获得的4-6二进制码补位,向6位二进制码添加2位高位0,组成4个8位二进制码。 对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。 而与公钥、密钥加密算法比起来,对称加密算法能够提供加密和认证却缺乏了签名功能,使得使用范围有所缩小。 方式:每个填充的字节都记录了填充的总字节数 结果如下: F1 F2 F3 F4 F5 F6 F7 F8 //第一块 F9 07 07 07 07 07 07 07 //第二块 常用算法 对称加密算法主要有 已被视为并不安全的加密算法。   因此,非对称加密算法也称为双钥加密算法或公钥加密算法。 特点 优点 非对称加密算法解决了对称加密算法的密钥分配问题,并极大地提高了算法安全性。

    5K60发布于 2018-01-05
  • 来自专栏程序员阿杰

    hash

    map = new HashMap<>(); map.put("key1",value1); map.put("key2", value2); //以上代码在初始化map是会先调用hashmap中的hash ()方法,且hashmap的初始数据结构为数组加链表的结构体系 static final int hash(Object key) { int h; return (key , Node<K,V> next) { this.hash = hash; this.key = key; this.value ; //可以看出hashmap和hashtable在获取hash整型后存入的数组下标的地址的获取方法存在差异 //hashmap存在最坏情况,即所有的值通过hash整数与数组长度的位运算存入的index 即 当哈希表中的总容量 > 该值时,才允许将链表转换成红黑树, * 否则,当元素太多时,则直接扩容,而不是树形化 * 为了避免进行扩容、树形化选择的冲突,这个值不能小于 4

    1.2K20编辑于 2022-01-10
  • 来自专栏osc同步分享-java技术分享站

    RSA加密算法

    System.out.println("加密后的文本是:"); System.out.println(s); System.out.println("============4. =="); System.out.println("解密之后的文本是:"); System.out.println(decry(list, key)); } /** * 4.

    2.8K90发布于 2018-03-14
  • 来自专栏我的技术专刊

    加密算法详解

    js端加密(使用sm-crypto) 引入依赖: const sm4 = require('sm-crypto').sm4 const sm2 = require('sm-crypto' 加密密钥 return '04' + sm2.doEncrypt(data, this.pubkeyHex, cipherMode); } sm4加密 : sm4Encrypt(data, key) { // sm4加密数据 return sm4.encrypt(data 注意密钥长度必须为128位 SM4 sm4 = new SM4(); SecretKey secretKey = sm4.getSecretKey(); 这里的key与前端加密使用的key相同 SM4 sm4 = new SM4(HexUtil.decodeHex(key)); String decryptStr = sm4

    5K00编辑于 2021-12-16
  • 来自专栏学习

    加密算法-----BCrypt

     一、常见的加密算法: 可逆算法:一种可以将加密后的密文还原为原始明文的算法。 对称算法:对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。 单向散列(hash)加密:是指把任意长的输入串变化成固定长的输出串,并且由输出串难以得到输入串的加密方法。广泛应用于对敏感数据加密,比如用户密码,请求参数,文件加密等。 PBKDF2(Java 原生支持,但不如 BCrypt/Argon2) 二、BCrypt的使用 Bcrypt是一种哈希加密算法,被广泛应用于存储密码和进行身份验证。 1.加密工具类 /** * 加密算法工具类 */ public class BCryptUtils { /** * 生成加密后密文 * * @param password r.setCode(code); r.setData(data); r.setMsg(msg); return r; } } 三、管理员登录-真实加密算法使用

    1.5K10编辑于 2025-08-11
  • 来自专栏游戏开发司机

    C++(STL):33---hash_set、hash_map、hash_multiset、hash_multimap源码剖析

    一、hash_set 由于hash_set底层是以hash table实现的,因此hash_set只是简单的调用hash table的方法即可 与set的异同点: hash_set与set都是用来快速查找元素的 但是set会对元素自动排序,而hash_set没有 hash_set和set的使用方法相同 在介绍hash table的hash functions的时候说过,hash table有一些无法处理的类型 二、hash_map 由于hash_map底层是以hash table实现的,因此hash_map只是简单的调用hash table的方法即可 与map的异同点: hash_map与map都是用来快速查找元素的 但是map会对元素自动排序,而hash_map没有 hash_map和map的使用方法相同 在介绍hash table的hash functions的时候说过,hash table有一些无法处理的类型 因此hash_map也无法自己处理 hash_map源码 //以下代码摘录于stl_hash_map.h //以下的hash<>是个function object,定义于<stl_hash_fun.h>

    2.7K30发布于 2021-02-03
  • 来自专栏HelloCode开发者学习平台

    浅谈Hash

    直接使用Hash 那么目前最优的解决方案就是使用密码的Hash值进行验证 客户端 直接将用户输入的密码进行Hash运算,得到结果发送给服务器验证.因为Hash算法无法逆运算,所以就算Hash值泄露, 那么我们这种加密.无论你怎么玩.妥妥的都是给服务器一个Hash串进行验证啊,也就是我只需要拿到你的Hash值.那么我只要模拟你客户端进行登录是再简单不过了. Hash串+@"201807102249")Hash.这次不通过再来一次 (服务器的Hash串+@"201807102248")Hash.和上一分钟对比,一次通过算成功 这样的好处,可以做到每登录发送给服务器的 Hash值是不一样的.黑客不能通过保存Hash值模拟登录. 这样的网站,在你上传视频的时候,它会将文件的Hash值保存.当其他的网站上传这个视频,那么看是否是正版,就是对比文件的Hash值.

    1.3K20编辑于 2023-03-23
  • 来自专栏python3

    python hash

    在 python3 中hash help(hash) Help on built-in function hash in module builtins: hash(obj, /)     Return  the hash value for the given object. #返回给定对象的哈希值     Two objects that compare equal must also have the same hash value, but the     reverse Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-p_w_picpath),通过散列算法,变换成固定长度的输出,该输出就是散列值。     

    1.2K10发布于 2020-01-09
  • 来自专栏数据结构与算法

    1000 加密算法

    题目描述 神龙数码公司设计了一个加密算法:用a代替z,用b代替y,用c代替x,......,用z代替a。现要求输入一个小写字母,对其进行加密输出。 输入 输入一个小写字母。 输出 输出加密后的字符。 样例输入 a 样例输出 z 数据范围限制 1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 char a;

    2.1K50发布于 2018-04-12
  • 来自专栏蓝天

    Cuckoo Hash和多级Hash的粗浅认识

    Cuckoo Hash和多级Hash的粗浅认识.pdf 通过对Cuckoo Hash、多级Hash和BloomFilter的粗浅了解,感觉它们三者存在类似之处,算是近亲(暂且把普通的Hash称作远亲 Cuckoo Hash的思想非常简单,冲突时,重Hash,也就是为Key重新找个新的位置。显然,极端情况下,需要反反复复找位置,效率低。 为了减少这个过程,Cuckoo Hash的实现一般引入了两个数组,这样只有在其中一个数组中不存在,就不会重新找位置。 多级Hash弱化了这个问题,它引入了更多的数组,比如20个,第一个位置被占了,就试第二个位置,依次类推,级数够多,最终能找到存放位置的概率就很高。 BloomFilter的用途和Cuckoo Hash、多级Hash明显不同,但同样通过多个数组来降低冲突概率,所以说它们很亲。 总的来说,这些思想都非常简单,而且很实用。

    1.5K00发布于 2018-08-10
  • 来自专栏宸机笔记

    RSA加密算法

    73011633012107403650963) e = gmpy2.mpz(0x10001) phi_n = (p-1)*(q-1) d = gmpy2.invert(e, phi_n) c = gmpy2.mpz(0x346644dfe4c826c07a0ee6e0b2e10862d41aa8

    3.1K10发布于 2020-11-04
  • 来自专栏个人技术博客

    ②【Hash】Redis常用数据类型:Hash

    f3 python f4 php 4. hmget 获取多个hash表中指定字段的值 hmget key field [field ...] # 同时获取hash表的key——h2中多个字段的值 hmget h2 f1 f2 f3 f4 5. hgetall 获取hash表中指定key的所有域值对(字段和值) hgetall key # 获取hash表中h2的所有域值对 hgetall h2 6. hdel 删除一个或多个hash表字段 hdel key field [field ...] # 删除hash表中h2的多个字段 hdel h2 f1 f3 7. hlen 获取hash表中字段的数量 hlen key # 获取hash表h1的字段数量 hlen h1 # 获取hash表h2的字段数量 hlen h2 8. hexists 确定hash表key中的指定字段是否存在 hexists key field # 0代表不存在,1代表存在 hexists h1 f5 hexists h1 f1 9. hkeys 获取hash表key中所有的字段 hkeys key # 获取hash表key:h1中的所有字段

    83110编辑于 2023-11-23
  • 来自专栏pandacode_cn

    加密算法介绍

    对称加密和非对称加密 加密算法分 对称加密 和 非对称加密,其中对称加密算法的加密与解密 密钥相同,非对称加密算法的加密密钥与解密 密钥不同,此外,还有一类 不需要密钥 的 散列算法。 对称加密 对称加密算法 是应用较早的加密算法,又称为 共享密钥加密算法。在 对称加密算法 中,使用的密钥只有一个,发送 和 接收 双方都使用这个密钥对数据进行 加密 和 解密。 4. 常用加密算法 4.1. 常用算法描述 加密算法 描述 SHA1 SHA1 是 消息摘要算法,SHA1 比 MD5 的 安全性更强。 PK 决定 SK,但是 PK 很难算出 SK(数学原理:两个大质数相乘,积很难因式分解)4. 速度慢,适合对少量数据加密 4.2. 常用算法对比 4.2.1. 非对称加密算法比较 名称 成熟度 安全性 运算速度 资源消耗 RSA 高 高 中 中 ECC 高 高 慢 高 4.3. 对称算法与非对称加密算法 4.3.1.

    99900编辑于 2023-07-17
  • 来自专栏趣谈编程

    神速Hash

    面试官: 聊聊HashMap的底层实现 理解HashMap底层,首先应该理解Hash函数,今天我们聊聊什么是Hash函数以及Hash函数的设计 查找速度的困扰 算法国自建立起,就以快速为至高的荣誉,O( ”何大臣说道,大家一致同意 Hash函数的选择 “那现在的问题就很清晰了,一个是这个Hash函数该选择什么样具体的函数,另一个就是出现冲突该怎么办?” Hash函数,整数应该有整数的Hash函数,字符串应该有字符串的Hash函数 就算针对同一类型的关键字,如果它具有某种规律,我们也要具体情况具体设计,刚才李大臣说的那种情况,我们就得选取其他分布均匀的高位来进行 Hash”右丞相补充道 “那为何不优化一下我们的Hash函数来使得关键字分布均匀,比如说 m 取一个素数,这样就不会出现刚才的情况了,比如说m取11,15,25,45,65,85,95,155,这些数Hash ,那我们就提前想一个比较好的Hash函数,来应对各种可能出现的情况 不管怎样,我们最终的目的就是让各个关键字均匀的Hash到不同的位置”,国王看天色渐晚,总结了一下,然后说道,今天就到这里,明天再议 未完待续

    1.1K50发布于 2018-01-31
领券