/images/logo.png

Shawn

双向认证

先从单向认证说起

单向认证是指,客户端向服务端证明自己的身份,服务端只验证客户端的身份,而不验证客户端的身份。 单向认证的过程是这样的:

  1. 客户端向服务端发送一个请求,请求中包含客户端的身份信息。
  2. 服务端验证客户端的身份信息,如果验证通过,服务端向客户端发送一个响应,响应中包含服务端的身份信息。
  3. 客户端验证服务端的身份信息,如果验证通过,客户端就可以认为服务端的身份是正确的。

对称加密

对称加密,顾名思义就是加密和解密都是使用同一个密钥,常见的对称加密算法有 DES、3DES 和 AES 等,其优缺点如下:

LRU 缓存

题目描述

请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类:

  • LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存

  • int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。

合并两个有序数组

题目描述

给你两个按 非递减顺序 排列的整数数组 nums1nums2,另有两个整数 mn,分别表示 nums1nums2 中的元素数目。

请你 合并 nums2nums1 中,使合并后的数组同样按 非递减顺序 排列。

删除有序数组重复原元素

题目描述

给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。

移除元素

题目描述

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。

假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作: