自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Rand Tsui

来自非洲的客人

  • 博客(393)
  • 资源 (2)
  • 论坛 (1)
  • 收藏
  • 关注

原创 【本博客所有公开的原创博文皆允许转载,无须再征求作者本人(也就是我)同意】

CSDN转载博文增加了“经过作者本人同意”的选项,无非就是想避免版权的纠纷。个人认为,公开的博文,就是为了方便大家查阅资料和解决问题的,别人完全可以转载备份。因为这个闹版权纠纷的难道不是耍流氓?...

2021-04-10 20:02:46 19

原创 任意Base编码的实现NodeJS

本程序参考开源项目:https://github.com/cryptocoinjs/base-x本程序还没有完全写完BaseN:let chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';let len = chars.length;let charCodeMap = Buffer.alloc(256);for (let i = 0; i < len; i++) { charC

2021-05-08 11:20:32 7

原创 多项式的转换,多项式变基

多项式的概念:a b ^ n + a2 * b ^ (n-1)

2021-05-03 15:42:17 22

原创 256进制的转换,文件名的编码

这个有什么意义,编码用的,把一串二进制,用一个字符表编码,比如base64就是一种常见的编码方案,那么编码有什么意义,可以参考:https://randtsui.blog.csdn.net/article/details/116064124。本文探讨的问题是,把一串二进制,用任意多个字符组成的字符表编码,这个字符表为BaseN,base64,N就是64个字符,比特币的base58,N就是58个字符,base32,N就是32个字符可以写一个函数,传入一个任意的字符串作为字符表,然后就可以用该表对一串二

2021-05-03 00:29:49 25

原创 命名的字符支持

文件名不适合用:/\|:;*?"<>-=$.#&()[]{}!`~文件名可以用:_+,@%nodejs 对象 key value 支持utf-8,base64肯定支持nodejs 变量命名字符有限url 虚拟路径path可以自定义使用安全字符cookie有些字符不能使用,但是base64字符传输是安全的,querystring会把+号变成空格encodeURIComponent 会让utf-8字符串长度增加很多倍随机buffer转...

2021-05-02 20:59:05 15

原创 【位运算】 >>> 0

无符号右移,右移0位表示,把小数变为32位无符号整数

2021-05-02 18:04:00 8

原创 计算机存储的最小单位是字节byte,不是位bit

51单片机是8位的寄存器,汇编指令一次最小处理8位,也就是一个字节,不管是内存还是外存。内存、磁盘容量都是以多少字节为单位,没听说过多少个位的磁盘。磁盘的读写以字节为单位,磁盘驱动不会给你存入几个位。磁盘分区以字节为单位,不可能按多少位给你分。文件大小以字节为单位,操作系统不可能显示一个文件占多少位。ASCII码表,每个字符都是一个字节,没有低于8位的字符。所以计算机存储的最小单位是字节byte,1byte=8bit,单位是什么,单位就是1后面的byte。如果说计算机存储的...

2021-05-02 00:28:41 27

原创 【systemctl】让程序以守护进程的方式在后台运行

首先需要创建一个systemdunit 配置文件,比如:verdaccio.service,一般放在 /lib/systemd/system/ 下添加配置如下:[Unit]Description=Verdaccio lightweight npm proxy registry[Service]Type=simpleRestart=on-failureUser=verdaccioExecStart=/usr/bin/verdaccio --config /etc/verdaccio/.

2021-05-01 17:22:56 24

原创 【npm】基础

1、一个项目如果依赖某些npm package,那么该项目本身就是一个npm package,一个npm package必须有package.json README.md LISCENSE.md index.js文件,不然获取依赖时会提示警告。2、当获取完依赖包时,会产生package-lock.json,该文件记录依赖关系,需要保留和提交。3、npm 源如果指向私有 registry ,那么首先需要登录 npm login...

2021-05-01 15:37:08 16

原创 Let‘s Encrypt 与 360 系列浏览器的矛盾

如果我要为ssl证书付费,我宁愿把这部分费用捐赠给Let's Encrypt这样的组织,然后使用它的免费证书。360浏览器不把它添加进信任列表,有它自己的原因,也是它的自由,哪怕它给你、给互联网带来阻碍你也无权干涉。剩下的问题就是你是要选择继续支持Let's Encrypt,还是付费选择其他的,鱼和熊掌往往不可兼得。我会继续支持Let's Encrypt,并且我也会告诉我的用户它的可靠性,还有360浏览器对它的特殊支持情况。完全也可以在网上宣传这些,普及人们对Let's Encryp

2021-05-01 14:52:46 21

原创 【PuTTY】Configuration

1、设置 ip port2、设置120列,40行3、设置光标为Vertical line+闪烁4、设置字体为新宋体、12px、GB23125、设置发送null的时间间隔60秒,不然可能因为路由的问题自动中断连接6、设置自动登录的用户名,root,这样打开的时候直接输入密码即可7、设置一个session名称,save导出和导入配置文件,以管理员身份运行cmd导出:regedit /e "%USERPROFILE%\Desktop\putty.reg" HKEY_CURRE.

2021-04-30 15:49:50 16

原创 【npm】在Ubuntu1804部署Verdaccio

1、创建verdaccio系统用户:$ sudo adduser --system --gecos 'Verdaccio NPM mirror' --group --home /var/lib/verdaccio verdaccio2、切换到该用户,并且切入该用户的家目录:$ sudo su -s /bin/bash verdaccio$ cd3、运行命令启动服务,生成存储目录和配置文件目录$ verdaccio4、修改配置文件,让它可以被外部访问:# yo...

2021-04-29 10:56:46 29

原创 【npm】npm命令

root@basic-services:~# npm -lUsage: npm <command>where <command> is one of: access npm access public [<package>] npm access restricted [<package>] npm access grant <read-.

2021-04-28 22:58:20 26

原创 【NodeJS】CommonJS原理

(function(modules) { var installedModules = {}; function __webpack_require__(moduleId) { if(installedModules[moduleId]) { return installedModules[moduleId].exports; } var module = installedModules[moduleId] = {.

2021-04-28 17:18:14 9

原创 【npm】创建私有npm包,使用Verdaccio

创建私有npm包1、npm官网可以创建私有npm包,但是要收费,每人每月7$,先找免费的2、在线的免费的有GitHub,可以看文章:https://andreybleme.com/2020-05-31/hosting-private-npm-packages-for-free/3、自己本地搭建仓库,可以使用开源项目verdaccio,这个项目的前身是sinopia,前身已经不维护了,verdaccio 地址:https://github.com/verdaccio/verdaccio4、..

2021-04-28 11:42:57 15

原创 常见MIME类型对照表

const MIMETable = { "apk": "application/vnd.android.package-archive", "avi": "video/x-msvideo", "buffer": "application/octet-stream", "cer": "application/pkix-cert", "chm": "application/vnd.ms-htmlhelp", "conf": "text/plain", ".

2021-04-27 21:09:49 13

原创 【NodeJS】最小服务器

const http = require('http');const fs = require('fs');http.createServer((req, res) => { let url = req.url; console.log(url); switch (req.method){ case 'GET': if(url === '/'){ let html = fs.readFileS.

2021-04-27 20:15:37 13

原创 【http】url的格式

┌────────────────────────────────────────────────────────────────────────────────────────────────┐│ href │├──────────┬──┬─────────────────────┬────────────────────.

2021-04-27 11:15:52 15

原创 njjn start

njjn是一个简化使用nodejs构建web服务程序的解决方案njjn的请求url为 /Controller/Action 形式Controller是文件名,也是该文件中的Class名称,Action是该Class中的方法Controller 和 Action 的命名规则:大小写字母、数字、下划线,不能以数字开头。(原本应该与JavaScript变量命名规则一致,但是Linux不适合用$符号命名文件,所以为了统一把$符号去掉)...

2021-04-26 10:50:26 20

原创 【NodeJS】与服务端建立tcp连接

const net = require('net');const client = net.createConnection({ port: 80 }, () => { // 'connect' listener console.log('connected to server!'); client.write('world!\r\n');});client.on('data', (data) => { console.log(data.toString(.

2021-04-25 21:04:24 9

原创 【NodeJS】设置 cookie

主要使用setHeader方法,第一个参数,返回头的名称,Set-Cookie,第二个参数可以是字符串也可以是字符串数组,什么区别:1、如果使用字符串,那么代表只设置一条cookie,在浏览器返回头中可以看到1个 Set-Cookie 行2、如果使用数组,那么数组里的每个字符串都代表一条cookie,在浏览器返回头中可以看到多个Set-Cookie 行一条cookie的格式应该是下面这个样子的字符串:name=value; name2=value2; name3=value3; Do..

2021-04-24 23:31:07 18

原创 【数学问题】碰撞时间计算

本计算用于验证128位的安全性已知从 [1, n] 内随机每个数字的概率为 1 / n,每次产生一个随机数字需要消耗时间为 s然后,随机 m 次,都不出现 1 的概率为 [(n-1)/n]^m,那么出现的 1 的概率即为 1-[(n-1)/n]^m实验得到,在2的28次方内随机出1大约需要时间 10000 ms,那么它平均随机了 10000 / 0.0001 = 100000000 次2的28次方 = 268435456 九位数假设 s = 0.0001 毫秒 ms,那么 1 毫秒能随.

2021-04-24 19:58:23 35

原创 2的n次方计算,支持大整数,nodejs代码

const fs = require('fs');const log = content => { content && fs.appendFileSync('./out.txt', content + '\n', err => {});};let n = BigInt(1);let s1, s2, s3s1 = `${0}次方:`.padStart(6, ' ');s2 = n.toString().padEnd(82, ' ');s3 = `${n.

2021-04-24 10:04:16 16

原创 2的n次方对照表,最大256次方,2021年

0次方:1 1位数 1次方:2 1位数 2次方:4 ...

2021-04-24 09:52:51 42

原创 哈希碰撞

哈希碰撞需要一个测试,得到在当前运行环境下的碰撞所需时间对于计算破解难度有重要意义。2的20次方:20ms、28ms、55ms、28ms、5ms2的22次方:53ms、54ms、24ms、13ms、122ms2的24次方:45ms、185ms、511ms、99ms、115ms2的26次方:544ms、743ms、483ms、956ms、315ms2的28次方:22132ms、20531ms、2632ms、8528ms、19218ms...

2021-04-23 23:35:50 19

原创 存储用户密码的最好的方式

md5和sha1容易破解,应该使用更安全的方式,比如sha256计算sha256的时候应该加盐salt,salt是一个多个随机字节的Buffer,它应该跟密码一起存在数据库中,防止彩虹表攻击,即使黑客拿到了数据库,也要逐一加盐破解,难度相比不加盐或者加公共盐将大大增加...

2021-04-23 22:44:37 23

原创 如何随机生成128个二进制位,然后toString

随机这个有什么用?uuid想必都听说过,就是通过随机一个大数字来保证唯一,sessionid也需要这个,sessionid建议128位,当然128位以上更安全。随机出来的二进制需要用字符表示,越短越好,便于传输如果用十六进制表示,一个字节8位,表示为两个十六进制的字符,128位需要32个字符表示,有没有更短的方案要知道一个字节是无法表示所有的8位,ASCII码一共才100多个,并且有一些控制字符无法显示可以用一个六十四个字符的码表来表示,大小写字母加10个数字一共62个字符,再加两个特殊字符

2021-04-23 17:52:00 29

原创 单点登录SSO设计

1、为什么需要单点登录? 因为如果没有单点登录,多个子网站就需要分别完成登录功能,账号不互通。2、单点登录系统的实质是一个包含用户账号、密码、显示名称、手机号、邮箱等基本信息的数据库...

2021-04-22 09:58:18 13

原创 Session设计

服务端肯定是需要session来保存用户登录状态的

2021-04-21 18:31:46 22

原创 iptables使用总结

icmp协议参考文章:https://erg.abdn.ac.uk/users/gorry/course/inet-pages/icmp-code.htmlEcho Reply (0), Echo Request (8), Redirect (5), Destination Unreachable (3), Traceroute (30), Time Exceeded (11).回显请求和回显应答// 8表示回显请求,服务器设置如下规则之后,本机ping服务器,将会显示请求超时,服务器对本机

2021-04-15 17:13:30 34

原创 iPhone与win10传输大文件,使用局域网

使用微信、qq之类的只能传输小文件,毕竟这个不是局域网。最快的方式,iPhone直接使用数据线连接win10传文件第二快的方式,iPhone与win10连接的同一个路由器,通过局域网建立连接,然后传输文件步骤:首先win10需要共享出去一个文件夹,然后其他设备就可以通过本机的ip、账号密码连接该文件夹,如果win10用的微软账号登录的,那么账号密码就是微软账号密码使用iPhone自带的“文件”APP,右上角可以连接服务器,输入ip、账号密码就可以连接成功,之后就会在iPhone看到win10

2021-04-13 09:37:36 29

原创 web服务器安全问题

任何服务器都可能被攻击,这是没法避免的,不能避免,但是可以防御,攻击和防御是一对矛盾,都需要讲究策略。网络有个带宽的概念,或者直接说网速更接地气,网速就是流量和时间的关系,一台计算机可以向另一台计算机不断发送数据包,另一台计算机可能接收也可能直接丢掉。...

2021-04-12 21:11:44 29

原创 【http】http报文是如何在tcp中传送的

最近在用nodejs设计web服务程序,对一些原理需要搞清楚,并做了一些测试。基础知识:http是基于tcp的,tcp是一个流式传输,tcp是基于ip的,一个ip报文最大为65536个字节,即64k,懂得都懂。一个get 请求,只包含header信息,header是有长度限制的,nodejs默认16k,当然也可以自己修改这个值,一般不会超过64k,也就是一个ip报文长度。所以get请求建立连接之后只发一次tcp数据就可以将数据全部发完,服务端也只收一次就能收完,事实也是如此。post请求就有

2021-04-12 15:06:09 30

转载 Linux 用户和组管理详解

用户与组的分类   Linux系统对用户分配如下:   -系统管理员:root   -普通用户:普通用户分为以下两种              系统用户:系统用户通常是不可登陆的,执行某些服务及进程的帐号              登录用户:一般用户,   我们登录linux系统时,输入的是我们的帐号,但是linux系统并不会直接识别你的帐号,而是通过我们建立帐号时系统分配的ID号码,对于用户类型ID分配如下:   -系统管理员ID:0 (root用户ID)   -普通用户ID:1~6553

2021-04-10 19:39:53 11

原创 【OpenSSH】

OpenSSH 官网:https://www.openssh.com/OpenSSH 是SSH(SecureSHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。OpenSSH是使用SSH协议进行远程登录的首要连接工具。它对所有通信进行加密,以消除窃听、连接劫持和其他攻击。此外,OpenSSH提供了大量的安全隧道功能、多种身份验证方法和复杂的配置选项。OpenSSH套件由以下工具组成:1、远程操作使用ssh、scp和sftp。2、密钥管理与s...

2021-04-10 19:33:26 27

原创 http请求处理设计

1、两台计算机的通信每台计算机都可以收、发消息,如果没有规则,那么收、发自由,不限制时间,但这一般是没有意义的。如果计算机设立了规则,那么就会按时发送,或者对收到的消息进行处理,对不满足条件的消息直接扔掉。现实中的服务,是一个零售店、公司、政府等等有个办事处,一直等待有人来找他们办事,有人来就会做出相应的处理。计算机服务也是一样,需要一台计算机等待消息,对不同的消息进行处理。有服务,就应该有客户,不然服务的存在没意义,这样 server、client 就出现了。2、客户端与服务端的连

2021-04-08 12:02:48 26

原创 计算机位图坐标系与数学坐标系的转换

计算机位图的坐标系,左上角为(0, 0)点,x轴向右增大,y轴向下增大,x 和 y只能都大于0把数学坐标系放进计算机位图坐标系中,假设数学坐标系的原点为(m, n),那么 m 和 n 都大于0可以把计算机位图坐标系称为实际坐标系,数学坐标系称为虚拟坐标系,实际坐标系用来绘制显示,虚拟坐标系用来计算实际坐标和虚拟坐标需要一个转换,才能得到想要的结果实际坐标转虚拟坐标:假设实际坐标为(x1, y1),那么虚拟坐标为(x1 - m, y1 - n)虚拟坐标转实际坐标:假设虚拟坐标为(x2, y

2021-04-03 16:07:20 38

原创 如何使用程序开n次方

Math.pow(a, n) //a的n次方Math.pow(a, 1/n) //开a的n次方

2021-04-03 15:32:07 37

原创

占个位

2021-04-01 10:24:07 11

原创 清与浊的界限

待写的文章

2021-03-24 13:19:52 17

streams.rar

一次性解除被锁定的多个文件,工具

2016-06-30

小程序自定义组件 toast.rar

小程序自定义组件---------toast 源码。

2019-09-11

七八个星天怪的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

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

TA关注的人 TA的粉丝

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