
数据结构
文章平均质量分 93
算法,
狂奔的蜗牛Evan
hello world
展开
-
浅谈常见的七种加密算法及实现
前言数字签名、信息加密 是前后端开发都经常需要使用到的技术,应用场景包括了用户登入、交易、信息通讯、oauth 等等,不同的应用场景也会需要使用到不同的签名加密算法,或者需要搭配不一样的 签名加密算法 来达到业务目标。这里简单的给大家介绍几种常见的签名加密算法和一些典型场景下的应用。正文1. 数字签名数字签名,简单来说就是通过提供 可鉴别 的 数字信息 验证 自身身份 的一种方式。一套 数字签名 通常定义两种 互补 的运算,一个用于 签名,另一个用于 验证。分别由 发送者 持有能够 代表自己身份转载 2021-07-19 15:56:04 · 898 阅读 · 0 评论 -
【数据结构】哈希表——线性探测法、链地址法、查找成功、查找不成功的平均长度
一、哈希表1、概念哈希表(Hash Table)也叫散列表,是根据关键码值(Key Value)而直接进行访问的数据结构。它通过把关键码值映射到哈希表中的一个位置来访问记录,以加快查找的速度。这个映射函数就做散列函数,存放记录的数组叫做散列表。2、散列存储的基本思路以数据中每个元素的关键字K为自变量,通过散列函数H(k)计算出函数值,以该函数值作为一块连续存储空间的的单元地址,将该元素存储到函数值对应的单元中。3、哈希表查找的时间复杂度哈希表...转载 2021-04-12 14:11:03 · 12903 阅读 · 8 评论 -
白话解析:一致性哈希算法 consistent hashing
在了解一致性哈希算法之前,最好先了解一下缓存中的一个应用场景,了解了这个应用场景之后,再来理解一致性哈希算法,就容易多了,也更能体现出一致性哈希算法的优点,那么,我们先来描述一下这个经典的分布式缓存的应用场景。场景描述假设,我们有三台缓存服务器,用于缓存图片,我们为这三台缓存服务器编号为0号、1号、2号,现在,有3万张图片需要缓存,我们希望这些图片被均匀的缓存到这3台服务器上,以便它们能够分摊缓存的压力。也就是说,我们希望每台服务器能够缓存1万张左右的图片,那么,我们应该怎样做呢?如果我们没有任何规转载 2021-01-21 16:00:36 · 113 阅读 · 0 评论 -
群消息已读回执(这个屌),究竟是推还是拉?
每当发出一条微信消息,都希望对方尽快看到,并尽快回复,但始终不知道对方是否阅读。每当收到一条不能立马回复的微信消息,都默默返回,假装没看见。画外音:不想回复的人,唉,你只是个好人。微信用于个人社交,产品设计上,在线状态,强制已读回执都有可能暴露个人隐私,故微信并无相关功能。钉钉用于商务交流,其“强制已读回执”功能,让职场人无法再“假装不在线”,“假装没收到”。有甚者,钉钉的群有“强制已读回执”功能,你在群里发出的消息,能够知道谁读了消息,谁没有读消息。群...转载 2021-01-08 11:12:28 · 985 阅读 · 0 评论 -
权重加载算法(同dubbo轮询算法)
我司采用多家短信通道,通过权重配置,来随机选择短信通道。算法如下:package test.test;import java.math.BigDecimal;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Random;import com...原创 2020-04-24 18:29:16 · 580 阅读 · 0 评论 -
jasypt加密
1.背景现代互联网充斥着各种攻击、病毒、钓鱼、欺诈等手段,层出不穷。对于一个公司而已最基本的财富无非是代码和数据,“配置属性加密”的应用场景假设如果攻击者通过某些手段拿到部分敏感代码或配置,甚至是全部源代码和配置时,我们的基础设施账号依然不被泄漏。当然手段多种多种多样,比如以某台中毒的内网机器为肉机,对其他电脑进行ARP攻击抓去通信数据进行分析,或者获取某个账号直接拿到源代码或者配置,等等...原创 2019-04-24 18:28:02 · 1711 阅读 · 0 评论 -
HexUtil工具类
1、可以用于加解密和加签算法中。package test;/** * 进制转化 * @author * */public class HexUtil { /** * 二进制byte数组转十六进制byte数组 * byte array to hex * * @param b byte array * ...原创 2017-04-01 14:47:40 · 8128 阅读 · 0 评论 -
为何与0xff进行与运算
为何与0xff进行与运算在剖析该问题前请看如下代码public static String bytes2HexString(byte[] b) { String ret = ""; for (int i = 0; i < b.length; i++) { String hex = Integer.toHexString(b[ i ] & 0xFF);...转载 2017-04-01 14:45:23 · 4104 阅读 · 0 评论 -
Java中十六进制转换 Integer.toHexString()
【源】http://jiangzhengjun.iteye.com/blog/506041【源】http://blog.csdn.net/java_freshman01/article/details/7257218为了显示一个byte型的单字节十六进制(两位十六进制表示)的编码,请使用:Integer.toHexString((byteVar & 0x000000FF) |转载 2015-06-03 13:05:27 · 8598 阅读 · 0 评论 -
base64复习
/** * 对参数进行BASE64编码 * @param param,code * @return */ public static String Base64Encode(String param, String code) { byte[] bytes = null; try { bytes = param.getBytes(code); } catch (转载 2014-12-11 14:47:13 · 708 阅读 · 0 评论 -
RSA加密算法原理及RES签名算法简介
原文地址:https://blog.csdn.net/z469441432/article/details/11477297第一部分:RSA算法原理与加密解密一、RSA加密过程简述A和B进行加密通信时,B首先要生成一对密钥。一个是公钥,给A,B自己持有私钥。A使用B的公钥加密要加密发送的内容,然后B在通过自己的私钥解密内容。二、RSA加密算法基础整个R...转载 2014-11-28 15:00:42 · 14466 阅读 · 6 评论