自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(86)
  • 资源 (4)
  • 收藏
  • 关注

原创 TLS协议解析

目前大多数web浏览器的默认配置可以降低这一风险,在调查的45个浏览器中,三分之二的浏览器仅允许会话ID和会话记录单的会话恢复有效期为60分钟。服务端完成DH交换,计算出共享密钥,握手阶段就结束了,从这一步往后全部是TLS完全加密通信,我们此时只能嗅探到通信的密文,无法得到任何原始的密文消息,任何消息的篡改和投放都会被通信双方感知到。认可服务器是通过tls 证书来完成,如果认可这个服务器,继续执行DH交互的动作,同时客户端来完成自己的DH交换,这样就可以计算得到共享密钥。

2023-12-11 16:02:33 450 1

原创 二叉树的最近公共祖先

示例 2: 输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 4 输出: 5 解释: 节点 5 和节点 4 的最近公共祖先是节点 5。示例 1: 输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1 输出: 3 解释: 节点 5 和节点 1 的最近公共祖先是节点 3。使用后序遍历,回溯的过程,就是从低向上遍历节点,一旦发现如何这个条件的节点,就是最近公共节点了。那么为什么要遍历整颗树呢?

2023-12-11 16:00:32 899 1

原创 证书链工作原理

根认证机构「CA」通过某种方式验证「CA2」的身份之后,再加上根认证机构自己的一些信息 ca_Info(Issuer,AKI),然后对它们(ca2_KeyPub + ca2_Info + ca_Info)进行散列运算,得到散列值 ca2_Hash。根认证机构「CA」将(ca2_KeyPub + ca2_Info + ca_Info + enc_ca2_Hash)组合签署成数字证书「ca2_Cert」并回送给「CA2」。如果两者相等,证明「ca2_Cert」是由「ca_Cert」签署的。

2023-12-11 15:59:13 456 1

原创 RSA加密及数字签名详解

当然,实际运用要比这复杂得多,由于RSA算法的公钥私钥的长度(模长度)要到1024位甚至2048位才能保证安全,因此,p、q、e的选取、公钥私钥的生成,加密解密模指数运算都有一定的计算程序,需要仰仗计算机高速完成。此时即可得到公钥PK=(e,n)={79,3337},私钥SK={1019,3337},后面的加密和解密直接套相应公式即可。此时即可得到公钥PK=(e,n)={3,33},私钥SK={d,n}={7,33},后面的加密和解密直接套相应公式即可。RSA公钥 Kpub(n,e) ,私钥 Kpr=d。

2023-11-24 11:14:28 2209 1

原创 业务架构-可复用

image.png

2023-08-28 16:37:16 49

原创 建立正确的说服观念

第一章:建立正确的说服观念1.1 定位:如何理解说服性的话语说服:意见不同时怎么让人听我的?生活中说服的困境:对许多人来说,只能选择让人痛苦,或自己痛苦。当一个人无法说服别人时,往往会用伤害、威胁、消耗、勒索的办法(让他人痛苦),或选择回避、委屈、讨好、交换(让自己痛苦)。说服其实是一门温柔的学科,“我能造成改变,却不用造成伤害”说服的术语解释:一种以非强迫的方式就能产生改变的力量非...

2023-07-27 15:39:07 50

原创 说服:瓦解反对和质疑

第二章:瓦解反对和质疑2.1 承担情绪:如何高效安抚反对情绪面对反对听众,我们的主要目的是:削弱。 不需要从黑转粉,黑转路已经很好。 削弱的三个目标:道歉、辩护、转化道歉,本身就是一种说服 道歉需要“被接受”,生活中常常会明明道歉了,对方还是很生气,也就是说对方没有“接受”你的道歉,你的道歉没有说服力。道歉的效力主要在于承担情绪与承诺改变。例:海底捞与全季的公关危机 海底捞和全季在同一年...

2023-07-27 15:24:46 72

原创 wireshark 导出证书

1、打开wireshark 输入过滤条件 ip.addr == "xxxxx"image.png2、选中有Certificate的那一行image.png展开, 记住不要双击打开,新窗口是无法使用右键的,展开后的样子是这样的image.png导出证书,右键选择'导出分组[字节流],保存格式为'All files',命名,后缀是.cer, 比如ca....

2023-05-07 18:57:50 686

原创 AES-GCM模式代码演示

对称加密与加密模式相关APIimage.png代码演示GCMAespackage com.deepway.cryptology;import javax.crypto.Cipher;import javax.crypto.NoSuchPaddingException;import javax.crypto.spec.GCMParameterSpec;import jav...

2022-12-19 00:20:32 410

原创 AES加密算法

AES加密算法实现原理

2022-12-18 09:38:04 4674

原创 将博客搬至CSDN

同步文章到CSDN

2022-12-18 09:29:02 53

原创 AES代码演示

AES 分组核心原理参考:https://www.jianshu.com/p/0c603e1c2fa7package com.deepway.cryptology;import javax.crypto.BadPaddingException;import javax.crypto.Cipher;import javax.crypto.IllegalBlockSizeException...

2022-12-18 08:34:21 87

原创 Java 密码API

对称加密相关APIimage.png/** * Aes 的Cipher 具体实现类是 AESCrypt * * @author huyanbing * @create 2022/12/16 2:39 下午 */public class AESTest { private final int keyLen; private final SecretKey ...

2022-12-16 15:49:58 115

原创 怎么构建一个可伸缩的高可用、高可靠大型网站?

1、问题流量增加就意味着对后端服务能力的增加,如何构建每秒处理GB数据、QPS超过数十万的大型系统,就变成了一个挑战。尤其是某些天才的秒杀创意,让这个流量变的越发变态不可预料。在有效的资源下,如何让系统保持良好的反馈?以支撑老板们的梦想呢?你有什么处理方式?或者你有什么体系化的心得体会要和我分享一下的?2.服务建设的重要指标服务的建设要关注几个指标。有了目标就有了方向可用性我们要保证服...

2022-05-02 15:39:01 96

原创 10. 正则表达式匹配

image.pngpublic boolean isMatch(String text, String pattern) { //如果 pattern 为空 那么判断 text 是不是也是空字符串 if (pattern.isEmpty()) return text.isEmpty(); boolean fi...

2021-08-26 23:46:20 46

原创 877.石子游戏(中等)

参考:https://labuladong.gitbook.io/algo/mu-lu-ye-2/mu-lu-ye-4/dong-tai-gui-hua-zhi-bo-yi-wen-ti/** * piles=[3,9,1,2] * * @param piles * @return */ public boolean stoneGame(...

2021-08-26 01:32:10 46

原创 Redis单线程处理IO请求性能瓶颈

Redis单线程处理IO请求性能瓶颈主要包括2个⽅⾯:1、任意⼀个请求在server中⼀旦发⽣耗时,都会影响整个server的性能,也就是说后⾯的请 求都要等前⾯这个耗时请求处理完成,⾃⼰才能被处理到。耗时的操作包括以下⼏种:a、操作bigkey:写⼊⼀个bigkey在分配内存时需要消耗更多的时间,同样,删除bigkey释放 内存同样会产⽣耗时;b、使⽤复杂度过⾼的命令:例如SORT/SUN...

2021-04-09 11:27:08 138

原创 注册中心选型和配置中心选型

注册中心选型和配置中心选型服务注册CP模型:Distro 协议,如果选Ephemeral (临时节点),则全部在内存中操作,则支持类似于Distro 协议,服务端节点都存储所有数据,但每个节点只负责其中一部分服务,在接收到客户端的“写“(注册、心跳、下线等)请求后,服务端节点判断请求的服务是否为自己负责,如果是,则处理,否则交由负责的节点处理;这样可以避免写单点的问题。AP模型:Raft协议,如果选非Ephemeral (非临时节点),则支持Raft 选主,并持久化到本地文件...

2021-02-19 00:48:16 455

原创 Spring gateway 实现动态路由功能

DefaultServerHttpRequestBuilder#pathPrefixPathGatewayFilterFactory[{ "filters":[ { "name":"StripPrefix", "args":{ "parts":1 } }], "id": "badiduRoute", "order": 0, "p...

2021-02-05 17:59:12 402

原创 微服务拆分

微服务拆分对在线教室业务来说,包括用户服务、在线教室服务、行为牌服务、回放服务、课件服务、信令服务、监课服务、在线教室反馈等等电子商务:用户服务User、商品服务Info、交易平台Trade、搜索服务Search、推荐引擎等1、垂直拆分拆不拆分主要看业务是物理关系还是逻辑关系 用户与商品是业务关系、商品与交易是业务关系等用户与在线教室是业务关系、商品与交易是业务关系等物理关系就是在同一个数据库,一般一个微服务都是独立部署、单进程、独立数据库拆分粒度问题:假如用户服务有注册、登...

2021-01-03 23:30:14 569 2

原创 微服务的拆分规范和原则

微服务的拆分规范和原则拆分方案压力模型拆分业务模型拆分--主链路拆分--领域模型拆分--用户群体拆分--前后台业务拆分高频高并发场景比如商品详情页,高频场景 时时刻刻都会发生,商品详情页 并发量最大的业务一笔成功达成的订单交易背后,可能会调用几十次商品详情页接口 货比三家低频突发流量场景比如前面提到的秒杀 突发流量 商品发布 新零售业务低频低流量场景这...

2021-01-03 23:27:20 111

原创 135. 分发糖果

老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻的孩子中,评分高的孩子必须获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?示例 1:输入: [1,0,2]输出: 5解释: 你可以分别给这三个孩子分发 2、1、2 颗糖果。示例 2:输入:...

2020-12-24 00:55:08 41

原创 买卖股票的最佳时机(动态规划/leetcode#121/简单)

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润...

2020-12-20 08:57:22 39

原创 5. 最长回文子串 动态规划 解法2

image.png暴力解法,判断每一种可能,我们想,是不是判断的太多了,比如已知aba是回文串,那么判断babab串时需要从头开始一步一步判断吗?答案是不需要的,我们可以利用动态规划来记录状态,并且使用状态转移方程减少不必要的判断首先定义状态 一维数组 dp[i,j],表示从第i个到第j个字符来表示是否是回文串,然后定义状态转移方程dp[i,j]=dp[i+1][j-1]&...

2020-12-14 23:57:51 40

原创 5. 最长回文子串 动态规划

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromic-substring...

2020-12-14 00:16:39 38

原创 贪心算法 455. 分发饼干

假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。示例 1:输入: g = ...

2020-12-12 12:08:00 34

原创 416. 分割等和子集

给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。注意:每个数组中的元素不会超过 100数组的大小不会超过 200示例 1:输入: [1, 5, 11, 5]输出: true解释: 数组可以分割成 [1, 5, 5] 和 [11].示例 2:输入: [1, 2, 3, 5]输出: false解释: 数组不能分割成两个元素和相等的子集....

2020-12-12 11:55:51 35

原创 300. 最长上升子序列

给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2) 。进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗?来源:力扣(LeetC...

2020-12-10 00:20:28 34

原创 149. 直线上最多的点数

给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。示例 1:输入: [[1,1],[2,2],[3,3]]输出: 3解释:^|| o| o| o+------------->0 1 2 3 4示例 2:输入: [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4]]输出: 4解释:^||...

2020-12-02 01:01:59 20

原创 447. 回旋镖的数量

给定平面上 n 对 互不相同 的点 points ,其中 points[i] = [xi, yi] 。回旋镖 是由点 (i, j, k) 表示的元组 ,其中 i 和 j 之间的距离和 i 和 k 之间的距离相等(需要考虑元组的顺序)。返回平面上所有回旋镖的数量。示例 1:输入:points = [[0,0],[1,0],[2,0]]输出:2解释:两个回旋镖为 [[1,0],[0,0],[...

2020-11-27 00:59:06 58

原创 18. 四数之和

给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为:[[...

2020-11-27 00:55:07 21

原创 454. 四数相加 II

给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 - 1 之间,最终结果不会超过 231 - 1 。例如:输入:A = [ 1, 2]...

2020-11-22 00:49:32 17

原创 49. 字母异位词分组

给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"]输出:[["ate","eat","tea"],["nat","tan"],["bat"]]说明:所有输入均为小写字母。不考虑答案输出的顺序。来源:力扣(LeetCode)链接:https:...

2020-11-22 00:49:13 105

原创 15. 三数之和 与 16. 最接近的三数之和

给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]来源:力扣(LeetCode)链...

2020-11-21 11:57:14 26

原创 206. 反转链表

反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-linked-list著作权归...

2020-11-21 11:54:04 20

原创 290. 单词规律 与 205. 同构字符串

单词规律给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。示例1:输入: pattern = "abba", str = "dog cat cat dog"输出: true示例 2:输入:pattern = "abba...

2020-11-17 23:30:25 45

原创 202. 快乐数

编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 True ;不是,则返回 False 。示例:输入:19输出:true解释:12 + 92 = 8282 + 22 ...

2020-11-17 00:03:56 17

原创 门面模式

门面模式 Facade Pattern子系统的外部与其内部的通信必须通过统一的对象进行提供一个高层次的接口,使得子系统更易于使用引入门面模式之前我想建个房子,必须自己找泥水匠、搬运工搬砖、水泥工砌墙image.png引入门面模式之后我想建个房子,直接找包头工就可以了,包头工在负责找泥水匠、搬运工搬砖、水泥工砌墙image.png代码实现如下image...

2020-11-16 23:14:28 23

原创 查找算法分析

两类查找问题1、查找有无-元素'a'是否存在?set;集合查找对应关系(键值对应)-元素‘a’出现了几次?map; 字典set 和 map常见操作:-insert-find-erase (删除)-change(map)Java 中的 Set 和 Map 是O(1) 的 下面的复杂度都是针对C++来说的image.pngimage.pngi...

2020-11-16 00:00:09 20

原创 76. 最小覆盖子串

给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。注意:如果 s 中存在这样的子串,我们保证它是唯一的答案。示例 1:输入:s = "ADOBECODEBANC", t = "ABC"输出:"BANC"示例 2:输入:s = "a", t = "a"输出:"a"来源:力扣(LeetC...

2020-11-15 21:52:28 21

GBT32960协议解析 整车编码、电池数据等

国家GBT32960协议解析 整车编码、电池数据等,北理工

2023-10-18

JAVA解析GBT32960协议 和 整车数据解析、驱动电机数据解析

JAVA解析GBT32960协议,整车数据解析、)驱动电机数据解析

2023-10-16

MVC实现权限管理系统

权限设计 用户、角色、用户-角色、模块、权限...、模块-权限、角色-模块-权限

2016-04-22

jquery tools

不可错过的jquery 库 比jquery ui 好用

2016-04-14

node.js windows 64安装包

node.js windows 64安装包 用于在windows上开发nodeJs应用

2016-01-12

前端顽疾--XSS漏洞分析与解决.ppt

前端顽疾--XSS漏洞分析与解决.ppt

2011-05-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除