
计算机网络与算法
文章平均质量分 78
计算机网络与算法
和代码去流浪
这个作者很懒,什么都没留下…
展开
-
国密SM2加解密Java工具类(附前端VUE代码)
1、SM2简述 RSA算法的危机在于其存在亚指数算法,对ECC算法而言一般没有亚指数攻击算法。 SM2椭圆曲线公钥密码算法:我国自主知识产权的商用密码算法,是ECC(Elliptic Curve Cryptosystem)算法的一种,基于椭圆曲线离散对数问题,计算复杂度是指数级,求解难度较大,同等安全程度要求下,椭圆曲线密码较其他公钥算法所需密钥长度小很多。 ECC算法描述:用户A选定一条适合加密的椭圆曲线Ep(a,b)(如:y2=x3+ax+b),并取椭圆曲线上一点,作为基点G。转载 2022-05-22 10:25:32 · 6064 阅读 · 0 评论 -
SM国密算法
- --首先先放几张图偶然见在国家宝藏节目看到了SM算法,由于名字奇特,所以倍感好奇于是百度了一波。其实就是国家密码局认定的国产密码算法。标准命名为SM+X(X=1,2,3,4……)当然这个名字的由来没有你们想象的那么邪恶,或许他只是一个优秀的人名缩写吧,比如说宋明旭什么的……这样的国产国密算法有很多种,其中SM1、SM4、SM7、祖冲之密码(ZUC)是对称算法;SM2、SM9是非对称算法;S...转载 2022-05-22 10:24:59 · 1671 阅读 · 0 评论 -
非科班进大厂必备算法
基础数据结构的融合是成为庞大系统的基石。比如 Redis 中的跳跃表,数据库索引 B+树等,只有对基础的数据结构足够的熟悉才能更容易去理解稍微复杂的结构,就仿佛我们闯关打怪一样,一步一步解锁直到结局。今天想和大家一起分享的是常见数据结构以及面试中的高频手撕算法题,一定要去手动写这些代码,可说百分之七八十都是这些题,一定要好好掌握。1 数据结构链表属于数据结构中的线性结构的一种,我们先看看什么是数据结构 数据结构是:结构的定义+结构的操作 想必大伙儿应该...转载 2022-05-22 10:23:01 · 395 阅读 · 0 评论 -
数据结构常见的八大排序算法(详细整理)
八大排序,三大查找是《数据结构》当中非常基础的知识点,在这里为了复习顺带总结了一下常见的八种排序算法。常见的八大排序算法,他们之间关系如下:排序算法.png他们的性能比较:性能比较.png下面,利用Python分别将他们进行实现。直接插入排序算法思想:直接插入排序.gif直接插入排序的核心思想就是:将数组中的所有元素依次跟前面已经排好的元素相比较,如果选择的元素比已排序的元素小,则交换,直到全部元素都比较过。因此,从上面的描述中我们转载 2022-05-22 10:15:59 · 546 阅读 · 0 评论 -
动画图解:十大经典排序算法动画与解析,看我就够了(配代码完全版)
排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序。 内部排序是数据记录在内存中进行排序。 而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。 用一张图概括: 时间复杂度与空间复杂度 关于时间复杂度: 平方阶 (O(n...转载 2022-05-21 11:33:35 · 6272 阅读 · 1 评论 -
解决Linux操作系统下AES解密失败的问题
现象描述:windows上加解密正常,linux上加密正常,解密时发生 如下异常:javax.crypto.BadPaddingException:Given final block not properly paddedat com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)at com.sun.crypto.provider.AESCipher.转载 2022-05-21 11:31:20 · 1861 阅读 · 0 评论 -
常用加密解密算法【RSA、AES、DES、MD5】介绍和使用
为了防止我们的数据泄露,我们往往会对数据进行加密,特别是敏感数据,我们要求的安全性更高。下面将介绍几种常用的加密算法使用。这些算法的加密对象都是基于二进制数据,如果要加密字符串就使用统一编码(如:utf8)进行编码后加密。 1.摘要算法 常用的摘要算法有MD5,SHA1。摘要算法是一个不可逆过程,就是无论多大数据,经过算法运算后都是生成固定长度的数据,一般结果使用16进制进行显示。 MD5和SHA1的区别:...转载 2022-05-21 11:29:34 · 6503 阅读 · 0 评论 -
数据结构中各种树
1. 二叉树 2. 二叉查找树 3. 平衡二叉树 3.1 平衡查找树之AVL树 3.2 平衡二叉树之红黑树 4. B树 5. B+树 6. B*树 7. Trie树 数据结构中有很多树的结构,其中包括二叉树、二叉搜索树、2-3树、红黑树等等。本文中对数据结构中常见的几种树的概念和用途进行了汇总,不求严格精准,但求简单易懂。回到顶部1. 二叉树 二叉树是数据结构中一种重要的数据结构,也是树表家族最为基础的结构。 二叉树的定义:二叉树的每个结点至多只有二棵子树(不存在度大转载 2022-05-18 17:02:29 · 1780 阅读 · 0 评论 -
浅谈分布式唯一ID的几种生成方案
前言在互联网的业务系统中,涉及到各种各样的ID,如在支付系统中就会有支付ID、退款ID等。那一般生成ID都有哪些解决方案呢?特别是在复杂的分布式系统业务场景中,我们应该采用哪种适合自己的解决方案是十分重要的。下面我们一一来列举一下,不一定全部适合,这些解决方案仅供你参考,或许对你有用。正文分布式ID的特性唯一性:确保生成的ID是全网唯一的。 有序递增性:确保生成的ID是对于某个用户或者业务是按一定的数字有序递增的。 高可用性:确保任何时候都能正确的生成ID。 带时间:ID里面包含时间,转载 2022-05-18 16:58:52 · 325 阅读 · 0 评论 -
Java使用RSA加密解密签名及校验
由于项目要用到非对称加密解密签名校验什么的,于是参考《Java加密解密的艺术》写一个RSA进行加密解密签名及校验的Demo,代码很简单,特此分享!RSA加密解密类:package com.ihep;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.F...转载 2022-05-18 16:57:13 · 1744 阅读 · 0 评论 -
RSA加密/解密 Decryption error异常解决
RSA加密/解密 Decryption error异常解决 import java.io.ByteArrayOutputStream;import java.security.Key;import java.security.KeyFactory;import java.security.KeyPair;import java.security.KeyPairGenerator;import java....转载 2022-05-16 21:17:48 · 4635 阅读 · 0 评论 -
你不得不知的几个互联网ID生成器方案
服务化、分布式已成为当下系统开发的首选,高并发操作在数据存储时,需要一套id生成器服务,来保证分布式情况下全局唯一性,以确保系统的订单创建、交易支付等场景下数据的唯一性,否则将造成不可估量的损失。基于时间戳比如流水号规则如下:XX-YYYYMMDD-N位随机数,这也是企业级应用开发常用的规则。此流水号对人比较友好,可识别性高,但容量受后面随机数的限制,且数据量越大,生成时难度越高。前三部分每天的流水号基本固定,后面的N位随机数生成后,需要校验此前不存在,可依赖redis的set机制,每天的随机数都写到转载 2022-05-16 21:12:51 · 2076 阅读 · 0 评论 -
[数据结构]--图(图的遍历,最小生成树,最短路径算法)
前言 在这里,如果大家对图或者数据结构还不太熟悉,想找一个动态的生成过程来参考,这是一个不错的网站. 知识框架 图的定义 在线性结构中,数据元素之间满足唯一的线性关系,每个数据元素(除第一个和最后一个外)只有一个直接前趋和一个直接后继; 在树形结构中,数据元素之间有着明显的层次关系,并且每个数据元素只与上一层中的一个元素(双亲节点)及下一层的多个元素(孩子节点)相关; 而在图形结构中,节点之间的...转载 2022-05-16 21:10:35 · 738 阅读 · 0 评论 -
说说http协议中的编码和解码
一、字符集与文字编码简介 1.计算机如何显示文字 我们知道,计算机是以二进制的“形式”来保存和处理数据的,也 就是说,不管我们使用键盘进行输入,还是让计算机去读取一个文本文件,计算机得到的原始内容是一些二进制序列,当需要对这些二进制序列进行显示时,计算机 会依照某种“翻译机制”(也就是编码方式),取到这些二进制序列所表示的每个文字的“轮廓描述”(点阵或者矢量图),知道了轮廓,计算机便可以将二进制序 列所表示的实际的文字形状显示到屏幕上了,这里面的思想和用学号来表示一个学生是一样的。(当然,这.转载 2022-05-11 17:43:32 · 2926 阅读 · 0 评论 -
x-www-form-urlencoded到底是什么
概述:x-www-form-urlencoded纸面翻译即所谓url格式的编码,是post的默认Content-Type,其实我觉得可以认为get和post的默认表单数据传递格式都一样,只是一个在url地址后面加 ?再加表单数据,另一个是把表单数据写在请求体內一、位置:请求头內的Content-Type字段里,二、写法:Content-Type:application/x-www-form-urlencoded三、用处:get请求的请求体格式是什么?get请求是拼接在url后面请求的,一般转载 2022-05-11 17:42:34 · 30420 阅读 · 0 评论 -
Content-Type的几种常用数据编码格式
Content-Type,内容类型,一般是指网页中存在的Content-Type,ContentType属性指定请求和响应的HTTP内容类型。如果未指定ContentType,默认为text/html。1.text/html文本方式的网页文件。2.text/plain窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。空格转换为 “+” 加号,但不对特殊字符编码。3.application/x-www-form-urlencoded默认地,表单数据会编码为 “applicat.转载 2022-05-11 17:40:18 · 1040 阅读 · 0 评论 -
HTTP(GET/POST)请求过程中的编码问题
一、问题:编码问题是JAVA初学者在web开发过程中经常会遇到问题,网上也有大量相关的文章介绍,但其中很多文章并没有对URL中使用了中文等非ASCII的字 符造成服务器后台程序解析出现乱码的问题作出准确的解释和说明。本文将详细介绍由于在URL中使用了中文等非ASCII的字符造成乱码的问题。1、在URL中中文字符通常出现在以下两个地方:(1)、Query String中的参数值,比如批发_供应_阿里巴巴=中国(2)、servlet path,比如:404-阿里巴巴中国.html2、出现乱...转载 2022-05-11 17:39:33 · 4771 阅读 · 0 评论 -
Java一个汉字占几个字节(详解与原理)
1、先说重点:不同的编码格式占字节数是不同的,UTF-8编码下一个中文所占字节也是不确定的,可能是2个、3个、4个字节;2、以下是源码: 1 @Test 2 public void test1() throws UnsupportedEncodingException { 3 String a = "名"; 4 System.out.println("UTF-8编码长度:"+a.getBytes("UTF-8").length); 5转载 2022-05-10 17:43:26 · 5104 阅读 · 1 评论 -
什么是Base64
一、什么是Base64? 百度百科中对Base64有一个很好的解释:“Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法”。 什么是“可打印字符”呢?为什么要用它来传输8Bit字节码呢?在回答这两个问题之前我们有必要来思考一下什么情况下需要使用到Base64?Base64一般用于在HTTP协议下传输二进...转载 2022-05-10 17:41:49 · 4122 阅读 · 0 评论 -
ContentType ,charset和pageEncoding的区别
========================说法一===========================ContentType 属性指定响应的 HTTP 内容类型。如果未指定 ContentType,默认为 text/HTML。 语法 Response.ContentType [= ContentType ] 参数 ContentTypepageEncoding是jsp文件本身的编码contentType的charset是指服务器发送给客户端时的内容编码JSP要经过两次的.转载 2022-05-10 17:40:05 · 584 阅读 · 0 评论 -
Broken pipe错误原因
这个异常是由于以下几个原因造成。1、客户端再发起请求后没有等服务器端相应完,点击了stop按钮,导致服务器端接收到取消请求。 通常情况下是不会有这么无聊的用户,出现这种情况可能是由于用户提交了请求,服务器端相应缓慢,比如业务逻辑有问题等原因,导致页面过了很久也没有刷新出来,用户就有可能取消或重新发起请求。 2、Tomcat服务器在接受用户请求的时候,有其自身的处理能力,线程、服务器等各个资源限制,超出Tomcat承载范围的请求,就会被tomcat停掉,也可能产生该错误。3、linux的线...转载 2022-05-09 20:00:13 · 50851 阅读 · 0 评论 -
http请求忽略证书、单向认证、双向认证、连接池范例(httpclient 4.3.x以上版本)
目录: 加载证书单向认证忽略证书双向认证连接池 加载证书单向认证 import org.apache.http.HttpEntity;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.conn....转载 2022-05-09 19:59:32 · 658 阅读 · 0 评论 -
HTTPS实战之单向验证和双向验证
(全文太长,太懒不想看,-_-b 那就直接拉到底部看总结 )前面的文章中,提到了,https是在TCP协议与http之间加了一个控制安全传输的SSL协议,也就是说,直接运行在TCP之上的HTTP是普通的HTTP,运行在SSL/TLS上的HTTP则是HTTPS。这几个协议在计算机网络的OSI七层模型中的位置如下表所示: 层级 层名 常用协议 7 应用层 HTTP/HTTPS、FTP、Soc转载 2022-05-08 11:19:02 · 4865 阅读 · 1 评论 -
http协议的状态码 200、301、304、404、502 HTTP状态码解释
在网站建设的实际应用中,容易出现很多小小的失误,就像mysql当初优化不到位,影响整体网站的浏览效果一样,其实,网站的常规http状态码的表现也是一样,Google无法验证网站几种解决办法,提及到由于404状态页面设置不正常,导致了google管理员工具无法验证的情况,当然,影响的不仅仅是这一方面,影响的更是网站的整体浏览效果。因此,比较清楚详细的了解http状态码的具体含义,对于一个网站站长来说,这是很有必要俱备的网站制作基础条件。如果某项请求发送到您的服务器要求显示您网站上的某个网页(例如,用户通过转载 2022-05-08 11:17:43 · 2225 阅读 · 0 评论 -
你应该知道如何跨域
前言转眼就是秋招季啦。经历了几场笔试面试,屡次被问到关于如何实现跨域。老实说,之前都是纸上谈兵,也没有项目需要跨域,甚至觉得这个东西没什么意义。直到今天项目中遇到了跨域问题,看了不少资料才理解跨域的普遍性和意义。特写此篇文章整理自己所得。转自个人博客:关于跨域什么是跨域一般来说,如果你在开发中需要进行跨域操作(从一个非同源网站发送请求获取数据),一般而言,你在浏览器控制台看到的结果为:XMLHttpRequest cannot load http://external-domain/s.转载 2022-05-08 11:16:40 · 113 阅读 · 0 评论 -
https 为什么是安全的?
https本质(CA验证的过程,核心就是预埋root公钥加密的过程):1. 源公钥线下给(root公钥 操作系统默认安装)[避免了中间人攻击,公钥不是在线给] 2. 公钥端生成对称密码 [对称密码不是服务端给,避免了中间人攻击,] 3. 公钥是加密用的,不是解密用的 [ 公钥虽然公开,但是加密后的数据只要私钥才能解开, 私钥不是加密用,因为私钥加密的数据,公钥都能解开. 服务端应该用临时生成的密码去加密, 这样就能保证一会话...转载 2022-05-07 11:09:25 · 751 阅读 · 0 评论 -
GET和POST请求中,url中的参数和form表单中的参数怎么区分
在和web前端开发过程中,经常会遇到使用form表单提交POST请求和GET请求。一般GET请求格式如下: http://xxx../path?key1=value1&key2=value2而POST请求的参数一般在请求体中。但是有时会发现,web端提交的POST请求的路径中,包含了接口中的参数,和GET请求的格式是一样的。这就心生疑惑,这两种形式到底怎么区分?在请求体和Url中,如果同时存在同名参数,那么那个值才是后台真正拿到的呢?为此,专门写了测试接口来测试以上情况,后台转载 2022-05-07 11:08:08 · 973 阅读 · 0 评论 -
HTTP请求头部Content-Type字段
研究HTTP请求头部的 Content-Type 字段,基于 Chrome 插件 DHC 1. GET 请求 GET 请求不存在请求实体部分,键值对参数放置在 URL 尾部,因此请求头不需要设置 Content-Type 字段 非 ASCII 码会自动进行编码转换,例如发送请求:www.bilibili.com?hehe=你的我的 GET /?hehe=%E4%BD%A0%E7%9A%84%E6%88%91...转载 2022-05-07 11:07:02 · 250 阅读 · 0 评论 -
$.ajax()post方式请求参数无法传递,request.getParameter()无法获取
$.ajax()post方式请求参数无法传递,request.getParameter()无法获取在前台页面中$.ajax({ url : "${ctx}/rediscluster/delete.do", data : {"rname":rname}, type : "post", dataType:"text",conten...转载 2022-05-06 17:48:23 · 4168 阅读 · 0 评论 -
Tomcat源码分析之getParameter(String)与getQueryString()
本文有些地方的描述对某些人来说可能比较罗嗦,如果想直接进入正题,可阅读“源码分析”节。但本文是自己一步步分析解决问题思路的记录,虽然有些地方的思考还不是很深入,主要是由于时间不是很充裕(虽然花了三天时间,但感觉还是不够),我会在后续的博文中,结合自己遇到的实际问题或在论坛中看到的别人提出的问题,一步步的带着问题深入分析tomcat源码,这种带着问题进行源码分析的方式,比较有针对性,不至于让自己迷失在源码的汪洋之中。如果大家对博客格式或其他方面有比较好的建议,欢迎指出,非常感谢。本次源码分析的目标是:转载 2022-05-06 17:50:26 · 763 阅读 · 0 评论 -
Java_得到GET和POST请求URL和参数列表
一 获取URL:getRequestURL()二 获取参数列表:1.getQueryString()只适用于GET,比如客户端发送http://localhost/testServlet?a=b&c=d&e=f,通过request.getQueryString()得到的是a=b&c=d&e=f.2.getParameter()GET和POST都可以使用但如果是POST请求要根据<form>表单提交数据的编码方式来确定能否使用.当编码方式是转载 2022-05-06 17:37:29 · 1122 阅读 · 0 评论 -
java获取GET和POST请求参数
URL和参数列表 一 获取请求方式 request.getMethod(); get和post都可用, 二 获取请求类型 request.getContentType(); get和post都可用,示例值:application/json ,multipart/form-data, application/xml等 三 获取所有参数key r...转载 2022-05-05 17:22:01 · 12830 阅读 · 3 评论 -
HTTP的报文格式、GET和POST格式解析
TTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。请求报文一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。(1)请求行请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。例如,GET /index.html HTTP/1.1。HTTP协议的请求方法有GET、POST、HEAD、PUT、.转载 2022-05-05 17:20:31 · 3133 阅读 · 0 评论 -
get和post详解
Get和post是表单提交数据的两种基本方式,get请求数据通过域名后缀url传送,用户可见,不安全,post请求数据通过在请求报文正文里传输,相对比较安全。get是通过url传递表单值,post通过url看不到表单域的值;get传递的数据量是有限的,如果要传递大数据量不能用get,比如type=“file”上传文章、type=“password”传递密码或者< text area >发 Get和post是表单提交数据的两种基本方式,get请求数据通过域名后缀url传送,用户可...转载 2022-05-05 17:19:38 · 958 阅读 · 0 评论 -
绝大部分人都理解错了HTTP中GET与POST的区别
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。当你在面试中被问到这个问题,你的内心充满了自信和喜悦。你轻轻松松的给出了一个“标准答案”:GET在浏览器回退时是无害的,而POST会再次提交请求。 GET产生的URL地址可以被Book转载 2022-05-04 10:16:27 · 105 阅读 · 0 评论 -
get和post详解
Get和post是表单提交数据的两种基本方式,get请求数据通过域名后缀url传送,用户可见,不安全,post请求数据通过在请求报文正文里传输,相对比较安全。get是通过url传递表单值,post通过url看不到表单域的值;get传递的数据量是有限的,如果要传递大数据量不能用get,比如type=“file”上传文章、type=“password”传递密码或者< text area >发 Get和post是表单提交数据的两种基本方式,get请求数据通过域名后缀url传送,用户可见...转载 2022-05-04 10:14:30 · 841 阅读 · 0 评论 -
HTTP的报文格式、GET和POST格式解析
TTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。请求报文一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。(1)请求行请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。例如,GET /index.html HTTP/1.1。HTTP协议的请求方法有GET、POST、HEAD、PU..转载 2022-05-04 10:13:47 · 1664 阅读 · 0 评论 -
再谈应用环境下的TIME_WAIT和CLOSE_WAIT
昨天解决了一个HttpClient调用错误导致的服务器异常,具体过程如下: http://blog.youkuaiyun.com/shootyou/article/details/6615051 里头的分析过程有提到,通过查看服务器网络状态检测到服务器有大量的CLOSE_WAIT的状态。 在服务器的日常维护过程中,会经常用到下面的命令: netstat -n | awk '/^t...转载 2022-05-03 10:38:05 · 91 阅读 · 0 评论 -
tcp/ip协议栈实现机制
tcp/ip协议栈属于操作系统内核层,通过提供系统调用供用户空间访问,从数据报到达最底层的网卡到最终传递给上层软件有一个过程,当一个数据报到达时网络驱动程序把数据报放到一个队列中,同时发送一个消息给ip进程,这里ip进程是一个独立的程序,专门处理ip数据报,tcp/ip协议栈中,根据协议的功能及复杂程度,一般通过进程方式实现,而协议间的数据传递则借助于操作系统提供的进程间通讯机制,当ip进程接受了一个传入的数据报,他必须决定将其发往何处作进一步处理,如果数据报中的内容是一个报文段,则必须将其交付给TCP模转载 2022-05-03 10:36:00 · 734 阅读 · 0 评论