![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Algorithm
算法笔记
Maggieq8324
万事从未风过耳,一生只是梦游身
展开
-
RSA分段解密 - Vue
前言上一篇文章实现了 Java RSA的分段加解密,这里我们介绍在 Vue 项目中如何使用 RSA 分段解密,这里的加解密场景是:后端私钥分段加密 - 前端公钥分段解密前端如何使用公钥解密这里不做重复叙述,注重点是分段解密,有需要的参考之前的文章:RSA加密 - Vue传送门RSA分段加密 - Java具体实现src/libs/jsencrypt/lib/JSEncrypt.js中添加新的解密方法decryptLong/** * 分段解密 * @param string原创 2021-07-27 14:57:28 · 2547 阅读 · 5 评论 -
RSA分段加密 - Java
前言RSA的 key 长度为 1024 用公钥加密比较长的字符串时会异常,这里介绍 java 如何对长文本进行分段加密,附上其它链接RSA加密 - JavaRSA加密 - Vue具体实现实现类import com.alibaba.fastjson.JSONObject;import org.apache.commons.lang3.ArrayUtils;import javax.crypto.Cipher;import java.security.KeyFactory;import原创 2021-07-27 14:26:34 · 2486 阅读 · 2 评论 -
使用链表实现队列
前言使用链表实现队列,需要队首指向队列头部管理数据出对,队尾指向队列尾部管理数据入队。具体实现队列接口public interface Queue<T> { /** * 元素入队 * @param t */ void enqueue(T t); /** * 元素出队 * @return */ T dequeue(); /** * 获取队首元素 * @r原创 2021-07-10 14:59:58 · 1424 阅读 · 0 评论 -
使用链表实现栈
前言使用自定义链表实现栈,自定义链表的实现:自定义链表具体实现栈接口public interface Stack<T> { /** * 添加元素 * @param t */ void push (T t); /** * 元素出栈 * @return */ T pop(); /** * 查看栈顶元素 * @return */ T peek()原创 2021-07-10 14:23:50 · 1908 阅读 · 0 评论 -
自定义链表
前言链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。具体实现实现类public class LinkedList<T> { /** * 链表节点 */ private class Node { public T t; public Node next; public Node(T原创 2021-07-08 22:35:58 · 1237 阅读 · 1 评论 -
RSA加密 - Vue
前言上一篇博客RSA加密 - Java实现了Java版的RSA公钥加密-私钥解密,私钥加密-公钥解密,这篇博客实现Vue下的加解密,记录两种前后端下加解密的场景前端公钥加密 - 后端私钥解密后端私钥加密 - 前端公钥解密前端公钥加密-后端私钥解密这种情况较为简单,是通用的做法安装jsencryptnpm install jsencryptRSAEncryption.js/** * 非对称加密-RSA * 前端公钥加密 - 后端私钥解密 * */import JSE原创 2021-07-05 14:51:55 · 1883 阅读 · 0 评论 -
RSA加密 - Java
前言简介RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥,“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。原理根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,即公钥,而两个大素数组合成私钥。公钥是可发布的供任何人使用,私钥则为自己所有,供解密之用。运算速度由于进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量数据加密。RSA的速度比原创 2021-07-04 15:57:13 · 1489 阅读 · 0 评论 -
泛型双端队列
前言deque (double-ended queue,双端队列)是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。具体实现实现类public class Deque<T> { /** * 数组 */ private T[] data; /** * 元素起始与结束位置 */ private int front, tail; /** *原创 2021-06-20 18:18:13 · 968 阅读 · 0 评论 -
泛型循环队列
前言循环队列是把顺序队列首尾相连,把存储队列元素的表从逻辑上看成一个环,成为循环队列。其将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列结构中,当存储空间的最后一个位置已被使用而再要进入队运算时,只需要存储空间的第一个位置空闲,便可将元素加入到第一个位置,即将存储空间的第一个位置作为队尾。循环队列可以更简单防止伪溢出的发生,但队列大小是固定的。在循环队列中,当队列为空时,有front=tail,而当所有队列空间全占满时,也有front=tail。为了区别这两种情原创 2021-06-12 20:14:13 · 1245 阅读 · 0 评论 -
泛型数组队列
前言队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。具体实现接口public interface Queue<T> { /** * 添加元素 * @param t */ void enqueue(T t); /** * 元素出队 * @retu原创 2021-06-12 16:17:40 · 1006 阅读 · 0 评论 -
泛型自定义栈
前言栈(Stack)是一种用于存储数据的简单数据结构,是一种特殊的线性表,是一种后入先出的数据结构,其插入和删除操作只允许在线性表的一端进行,一般而言,把允许操作的一端称为栈顶(Top),不可操作的一端称为栈底(Bottom),同时把插入元素的操作称为入栈(Push),删除元素的操作称为出栈(Pop),若栈中没有任何元素,则称为空栈。具体实现接口public interface Stack<T> { /** * 添加元素 * @param t原创 2021-06-11 13:00:18 · 1071 阅读 · 1 评论 -
泛型动态数组
前言动态数组是指在声明时没有确定数组大小的数组,可以在任何时候改变大小,使用动态数组的优点是可以根据用户需要,有效利用存储空间。具体实现自定义泛型动态数组public class Array<T> { private T[] data; private int size; /** * 构造函数,传入数组的容量capacity构造Array * @param capacity */ public Array (int原创 2021-06-08 22:48:40 · 987 阅读 · 0 评论 -
插入排序算法
前言插入排序是一种简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找,并进行移动。具体实现实现类public class InsertionSort { /** * 私有构造函数,该类不被别人创建,直接使用该类的sort函数 */ private InsertionSort () {}原创 2021-06-05 23:22:32 · 962 阅读 · 2 评论 -
选择排序算法
前言选择排序是一种简单直观的排序算法,其算法步骤:首先在未排序序列中找到最小元素,存放到排序序列的起始位置,再从剩余未排序元素中继续寻找最小元素放到已排序序列的末尾,直到所有元素均排序完毕。具体实现实现类public class SelectionSort { /** * 私有构造函数,该类不被别人创建,直接使用该类的sort函数 */ private SelectionSort(){} /** * 泛型选择排序法 * 原地排原创 2021-06-05 16:09:09 · 976 阅读 · 0 评论 -
线性查找算法
前言线性查找又称顺序查找,是一种最简单的查找方法,其基本思想是从第一个记录开始,逐个比较记录的关键字,直到和给定的值相等,则查找成功;若比较结果与文件中的记录都不等,则查找失败。具体实现实现类public class LinearSearch { /** * 私有构造函数,该类不被别人创建,直接使用该类的search函数 */ private LinearSearch(){} /** * 泛型线性查找 * 于自定义的类,要重写equ原创 2021-06-05 14:26:10 · 1165 阅读 · 0 评论