首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏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
  • 来自专栏兜兜毛毛

    Redis Hash哈希(2)

    1、把所有相关的值聚集到一个key中,节省内存空间 2、只使用一个key,减少key冲突 3、当需要批量获取值的时候,只需要使用一个命令,减少内存/IO/CPU的消耗 Hash不适合的场景: 1、Field 不能单独设置过期时间 2、没有bit操作 3、需要考虑数据量分布的问题(value值非常大的时候,无法分布到多个节点) 存储(实现)原理 Redis的Hash本身也是一个KV的结构,类似于Java中的HashMap 当hash对象同时满足以下两个条件的时候,使用ziplist编码: 1、所有的键值对的健和值的字符串长度都小于等于64byte(一个英文字母一个字节) 2、哈希对象保存的键值对数量小于512个。 ht[2] redis的hash默认使用的是ht[0],ht[1]不会初始化和分配空间。 哈希表dictht是用链地址法来解决碰撞问题的。 扩展:ht[1]的大小为第一个大于等于ht[0].used*2。 2、将所有的ht[0]上的节点rehash到ht[1]上,重新计算hash值和索引,然后放入指定的位置。

    1.2K10发布于 2020-03-19
  • 来自专栏搜狗测试

    常见加密算法解析-2

    今天主要总结下常用的对称性加密算法:DES和AES,非对称性加密算法:RSA DES加密 DES含义: DES是对称性加密里常见的一种,全程是Data Encryption Standard AES算法特点: 运算速度快,安全性高,资源消耗少 RSA加密 RAS含义: RSA加密算法是一种非对称加密算法,这种算法非常可靠,密钥越长,它就越难破解。 不同的非对称加密算法也会应用到不同的数学知识。接下来就来看看RSA算法是怎么来对数据进行加密的。 ? 下面是RAS算法的加密算法流程图: ? RAS算法特点: 不需要进行密钥传递,提高了安全性 可以进行数字签名认证 加密解密效率不高,一般只适用于处理小量数据(如:密钥) 容易遭受小指数攻击 常见的几种加密算法先总结到这,如果大家对加密的具体过程感兴趣的话

    2.1K30发布于 2020-05-27
  • 来自专栏算法微时光

    djb2 hash算法

    djb2 hash function 算法实现: // generates a hash value for a sting // same as djb2 hash function //构造哈希函数 f(hash)= hash * 33 + c unsigned int CountMinSketch::hashstr(const char *str) { unsigned long hash = 5381; int c; while (c = *str++) { hash = ((hash << 5) + hash) + c; /* hash * 33 + c */ } return hash; } 数学实现: X = (a * X) + c; // "mod M", M = 2^32 或 2^64 this algorithm (k=33) was first 参考 djb2:一个产生简单的随机分布的哈希函数 常见的hash算法及其原理

    1.8K40发布于 2020-04-23
  • 来自专栏DPDK VPP源码分析

    learning:vpp hash Infrastructure (2)

    在vpp 19.01版本中ipsec使用vpp自带的ikev2协商,遇到过因硬件RSS算法(默认是L34层做hash key)导致协商失败的问题。 在网卡开启多队列之后,ikev2第一阶段,端口号500,rss hash到worker1上,ikev2 第二阶段,因存在nat 端口号4500,rss hash 到worker2上面,导致查询不到sa资源 compute_flow_hash ((ip4_header_t *) l3h, IP_FLOW_HASH_DEFAULT); /*2、ipv6 报文 以报文五元组 + flowtable 做hash , IP_FLOW_HASH_DEFAULT); else {/*2、二层报文 以报文smac + dmac + ethernet type 做hash key*/ u32 a, \ _ (sport, 2, IP_FLOW_HASH_SRC_PORT) \ _ (dport, 3, IP_FLOW_HASH_DST_PORT

    1.1K10编辑于 2023-09-05
  • 来自专栏陈大剩博客专栏

    Redis Hash(Hash) 复习

    应用场景 Hash也可以同于对象存储,比如存储用户信息,与字符串不一样的是,字符串是需要将对象进行序列化(比如json序列化)之后才能保存,而Hash则可以讲用户对象的每个字段单独存储,这样就能节省序列化和反序列的时间 第一维 hash 的数组位置碰撞时,就会将碰撞的元素使用链表串接起来。 increment > HINCRBYFLOAT myhash1 5 3.5 "10.5" increment浮点增量可以为负数 迭代(HSCAN) HSCAN 和 SCAN 类似,HSCAN 针对于hash 'host' => '127.0.0.1', 'port' => 6379, ]); for ($i = 1; $i <= 10000; $i++) { $client->hset('hash2 $i,$i); } HSCAN 查询 > HSCAN hash2 0 MATCH "key:99*" count 10000 1) "0" 2) 1) "key:9956" 2) "9956

    2.4K30编辑于 2023-03-06
  • 来自专栏大龄程序员的人工智能之路

    解读国密非对称加密算法SM2

    本文先介绍非对称加密算法,然后聊一聊椭圆曲线密码算法(Elliptic Curve Cryptography,ECC),最后才是本文的主题国密非对称加密算法SM2。 在整个密码学体系中,非对称加密算法用途更广,可以用在加密解密、密钥协商、数字签名等方面。所以本文先介绍一下非对称加密算法。 非对称加密算法 非对称加密算法也称作公开密钥算法(Public Key Cryptography),有着一对密钥:公钥(Public Key)和私钥(Private Key)。 说到这儿,和国密SM2算法有什么关系? 国密SM2算法 SM2算法就是一种ECC算法,准确来说,就是设计了一条ECC命名曲线。这算抄袭么? 也不是,因为SM2算法不仅用在加解密,还用在数字签名、密钥协商中,国密标准另外定义了数字签名算法、密钥交换协议、公钥加密算法,所以要把这些都实现完整,才算实现完全了国密SM2算法。

    6.5K20发布于 2020-03-25
  • 来自专栏IDE激活码系列

    加密算法

    加密算法是旅居瑞士中国青年学者来学嘉和著名密码专家J.Massey于1990年提出的。它在1990年正式公布并在以后得到增强。 类似于DES,IDEA算法也是一种数据块加密算法,它设计了一系列加密轮次,每轮加密都使用从完整的加密密钥中生成的一个子密钥。与DES的不同处在于,它采用软件实现和采用硬件实现同样快速。 ) mod p =r,又例如对于下列表述中的“(2)X2和第二个子密钥相加”就是指用X2与第二个子密钥的和除以2^16(即65536)后的余数。 就是指用X1和第一个子密钥相乘后的积除于(2^16+1)(即65537)后的余数。异或指的是不进位加法。)(1)X1和第一个子密钥相乘。(2)X2和第二个子密钥相加。(3)X3和第三个子密钥相加。 (2) X2和第二个子密钥相加。(3) X3和第三个子密钥相加。(4) X4和第四个子密钥相乘。最后,这4个子分组重新连接到一起产生密文。产生子密钥也很容易。

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

    加密算法

    在对称加密算法中,数据发信方将明文(原始数据)和加密密钥(mi yao)一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。 对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。 而与公钥、密钥加密算法比起来,对称加密算法能够提供加密和认证却缺乏了签名功能,使得使用范围有所缩小。 方式:每个填充的字节都记录了填充的总字节数 结果如下: F1 F2 F3 F4 F5 F6 F7 F8 //第一块 F9 07 07 07 07 07 07 07 //第二块 常用算法 对称加密算法主要有 已被视为并不安全的加密算法。   因此,非对称加密算法也称为双钥加密算法或公钥加密算法。 特点 优点 非对称加密算法解决了对称加密算法的密钥分配问题,并极大地提高了算法安全性。

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

    hash

    //Hashmap解析 Map<String, Object> map = new HashMap<>(); map.put("key1",value1); map.put("key2", value2 ); //以上代码在初始化map是会先调用hashmap中的hash()方法,且hashmap的初始数据结构为数组加链表的结构体系 static final int hash(Object key) ; final K key; V value; Node<K,V> next; Node(int hash, K key, V value , Node<K,V> next) { this.hash = hash; this.key = key; this.value ; //可以看出hashmap和hashtable在获取hash整型后存入的数组下标的地址的获取方法存在差异 //hashmap存在最坏情况,即所有的值通过hash整数与数组长度的位运算存入的index

    1.2K20编辑于 2022-01-10
  • 来自专栏算法半岛

    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
  • 来自专栏站长的编程笔记

    实现在Java环境中使用SM2加密算法

    在Java环境中使用SM2加密算法,主要涉及两个步骤:引入SM2相关的库并使用其公开的API进行开发,和实际使用SM2加密、解密等功能。 引入并使用SM2相关库 我们可以选择使用BouncyCastle库,它提供了广泛的加密和哈希函数,包括SM2。 artifactId>         <version>1.64</version>     </dependency> </dependencies> 然后,我们需要初始化BouncyCastle提供的SM2加密服务 Security.addProvider(new BouncyCastleProvider()); 使用SM2进行操作 https://s.10zhan.com 涉及到加密和解密,我们首先需要生成公钥和私钥  KeyPairGenerator.getInstance("EC", "BC"); ECGenParameterSpec ecGenSpec = new ECGenParameterSpec("sm2p256v1

    4.1K40编辑于 2023-10-02
  • 来自专栏程序那些事

    密码学系列之:Argon2加密算法详解

    Password Hashing Competition 密码学虽然是研究密码的,但是其加密算法是越公开越好,只有公开才能去检视该算法的好坏,只有经过大家的彻底研究,才能够让该算法得以在业界使用和传播。 最出名的密码算法大赛肯定是由NIST在2001年为了指定标准的AES算法举办的大赛,该大赛的目的寻找最新的加密算法来替代老的DES算法。 (buffer, 64) //default hash size of Blake2b is 64-bytes 对于输入参数并行程度p来说,需要将内存分成一个内存矩阵B[i][j], 它是一个 p 行的矩阵 计算矩阵B的值: 其中H′ 是一个基于H的变长hash算法。 is a variable-length hash function, built using Blake2b, capable of generating digests up to 232

    1.2K00发布于 2021-09-20
  • 来自专栏sukuna的博客

    CMU 14-445 Lab2.EXTENDIBLE HASH INDEX

    CMU 14-445 Lab2.EXTENDIBLE HASH INDEX 于2022年5月30日2022年5月30日由Sukuna发布 本实验我只完成2.1和2.2 2.3不会写,算了. i的关系,所有局部深度不能比全局深度大 uint8_t local_depths_[DIRECTORY_ARRAY_SIZE];//每一个页的局部深度,这个类似三级页表.第一级的页表局部深度就是2. 桶b的内容(1),平均分成01和11.桶a的内容被00和10指着 这个时候local_depth变成了2,原来的a桶depth还是1. 如果a满了,也是一样分裂,但是local_depth=1<2,目录页是不用分裂的. 插入讲完了,现在我们需要讲一讲合并. 参考官方做法就是: (1)两哈希桶均为空桶; (2)目录项及其目标目录项(一个目录项的目标目录项可由其低第j位反转得到)的局部深度相同且不为0。 满足上述两个条件后就可以进行合并了。

    91830编辑于 2022-12-08
  • 来自专栏iOS开发干货分享

    iOS逆向(2)-密码学(Hash&对称加密)

    接下来本文会从以下几点进行阐述: Hash的特点 Hash的用途 对称加密 1、Hash的特点 ①、算法是公开的 ②、对相同数据运算,得到的结果是一样的 ③、对不同数据运算,如MD5得到的结果默认是128 2、Hash的用途 ①、用户密码的加密 ②、搜索引擎 ③、版权 ④、数字签名 下面概述密码加密和数字签名的内容 1、密码加密 Step 1 密码加密需要确保服务端没有保留保存用户的明文密码,所以过程很安全的 Step 2 普通HASH 普通的Hash因为存在散列碰撞的问题,所以简单的对密码HASH(例如MD5),肯定不够安全。 推荐网站:反MD5网站 Step 3 固定盐 既然简单的Hash不安全那么进一步可以想到将密码通过固定的算法转换一次,在进行Hash,也就是我们俗称的加盐。 2、数字签名 一张图讲解数字签名 ? 3、对称加密 对称加密含义 常用的对称加密分为三种: ?

    1.3K50发布于 2019-06-14
  • 来自专栏程序那些事

    密码学系列之:Argon2加密算法详解

    Password Hashing Competition 密码学虽然是研究密码的,但是其加密算法是越公开越好,只有公开才能去检视该算法的好坏,只有经过大家的彻底研究,才能够让该算法得以在业界使用和传播。 最出名的密码算法大赛肯定是由NIST在2001年为了指定标准的AES算法举办的大赛,该大赛的目的寻找最新的加密算法来替代老的DES算法。 (buffer, 64) //default hash size of Blake2b is 64-bytes 对于输入参数并行程度p来说,需要将内存分成一个内存矩阵B[i][j], 它是一个 p 行的矩阵 计算矩阵B的值: 其中H′ 是一个基于H的变长hash算法。 is a variable-length hash function, built using Blake2b, capable of generating digests up to 232

    1.9K20发布于 2021-09-24
  • 来自专栏osc同步分享-java技术分享站

    RSA加密算法

    int[] primeNum = getPQE(); System.out.println("p="+primeNum[0]+", q="+primeNum[1]+", e="+primeNum[2] ); System.out.println("============2.生成密钥========="); KeyPair key = getKeyPair(primeNum[0], primeNum[1], primeNum[2]); System.out.println(key); System.out.println("============3.加密== System.out.println((char)ch+" "+ch+"\t"+b+" "+(char)b.longValue()); } return list; } /** * 2. param num * @return */ static boolean isPrime(long num){ if(num<=0) return false; for(int i=2;

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

    加密算法详解

    ).sm2 sm2加密: sm2加密类似RSA,有公钥和私钥,这里前端使用公钥加密,加密有两种模式,适配后端这里改为C1C2C3模式。 ,默认为1 sm2Encrypt(data) { // sm2加密密钥 return '04' + sm2.doEncrypt sm2Engine = new SM2Engine(); sm2Engine.init(false, privateKeyParameters); byte[] bytes 使用hutool解密 SM2 sm2 = new SM2(ECKeyUtil.toSm2PrivateParams(privateKey), null); sm2.setMode (SM2Engine.Mode.C1C2C3); sm2.setEncoding(new PlainDSAEncoding()); String decryptStr =

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

    加密算法-----BCrypt

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

    1.5K10编辑于 2025-08-11
  • 来自专栏宸机笔记

    RSA加密算法

    import gmpy2 import binascii n = 4154220405062524632278989171077190153188438109 # p 和 q通过yafu得出 p = gmpy2 .mpz(56898061770151570660943) q = gmpy2.mpz(73011633012107403650963) e = gmpy2.mpz(0x10001) phi_n = ( p-1)*(q-1) d = gmpy2.invert(e, phi_n) c = gmpy2.mpz(0x346644dfe4c826c07a0ee6e0b2e10862d41aa8) m = pow (c, d, n) print("10:\n%s"%m) m_hex = hex(m)[2:] print("16:\n%s"%(m_hex,)) print("ascii:\n%s"%(binascii.a2b_hex

    3.1K10发布于 2020-11-04
领券