数据库中信息加密的若干方式及问题
前言 用户数据的数据库存储,一直是后端开发经典话题,今天就通过几种不同的加密方式(hash)简单的探讨一下 在开始之前我先思考下面几个问题 为什么用户信息在数据库中还需要进行加密? 防止数据泄露 外部攻击:黑客可能通过SQL注入、暴力破解等手段获取数据库访问权限,加密后即使数据被窃取,也无法直接读取。 内部威胁:内部人员可能滥用权限访问敏感数据,加密后即使有权限,也无法直接查看明文。 防止撞库: 很多情况下用户可能在多个平台使用相同密码进行注册,一但用户的密码泄露其他平台也可能受到攻击 保护用户隐私 敏感信息:如身份证号、银行卡号等,泄露可能导致身份盗窃和财产损失。 信任维护:加密有助于维护用户信任,避免因数据泄露导致声誉损失。 常见的加密类型有哪些? 对称加密:如AES,加密解密使用相同密钥,适合大数据量加密 应用场景例如 各种通行数据加密,比如 https等。 非对称加密:如RSA,加密解密使用不同密钥,适合密钥分发和数字签名,应用场景例如 各种通信协议的身份验证,比如 ssh...
根据数据范围反推算法复杂度及其算法内容
一般ACM,leetcode,或笔试题的时间限制是1秒或2秒。 在这种情况下,C++代码中的操作次数控制在 107∼10810^7 \sim 10^8107∼108 为最佳。 下面给出在不同数据范围下,代码的时间复杂度和算法该如何选择: n≤30n \le 30n≤30, 指数级别, dfs+剪枝,状态压缩dp n≤100n \le 100n≤100 => O(n3)O(n^3)O(n3),floyd,dp,高斯消元 n≤1000n \le 1000n≤1000 => O(n2)O(n^2)O(n2),O(n2logn)O(n^2logn)O(n2logn),dp,二分,朴素版Dijkstra、朴素版Prim、Bellman-Ford n≤10000n \le 10000n≤10000 => O(n∗n)O(n * \sqrt n)O(n∗n),块状链表、分块、莫队 n≤100000n \le 100000n≤100000 => O(nlogn)O(nlogn)O(nlogn) =>...
git基本使用及一个极简工作流
git基本概念 工作区: 仓库目录.工作区是独立于各分支的(即切换分支时会将对应分支的版本cp到工作区). 暂存区: 数据暂时存放的区域,类似于工作区写入版本库前的缓存区。暂存区是独立于各个分支的。 版本库: 存放所有已经提交到本地仓库的代码版本 版本结构: 有向无环图,图中每个节点代表一个代码版本。 HEAD: 指向当前工作区的版本,如果把版本看作图中的节点,则HEAD相当于存放该节点的指针 分支: 记录起始版本到当前版本的一条路径的标记,进行git reset时跟随HEAD移动,进行git checkout时HEAD切换到其他分支 git常用命令 git config --global user.name xxxx: 设置全局用户名,信息记录在~/.gitconfig文件中 git config --global user.email xxxx@xxx.com: 设置全局邮箱地址,信息记录在~/.gitconfig文件中 git init: 将当前目录配置成git仓库,信息记录在隐藏的.git文件夹中 git add xx: 将XX文件添加到暂存区 git add...
服务器基本配置
服务器获取 服务器直接从各大云运营商(阿里云,华为云,腾讯云等)直接购买即可(不贵2c2g 100元/年日常够用) 买流程各运营商官网都有教程 这里用的是阿里云,阿里云是直接给root(有些运营商不是)但日常使用我们也不会直接使用root,看下文配置 们先在官网控制台重置一下登录密码(如果是在配置服务器时就是自己配置的就不用了) 创建工作用户 先通过ssh登录root用户 1ssh root@xxx.xxx.xxx.xxx # xxx.xxx.xxx.xxx替换成新服务器的公网IP 第一次登录会提示: 123The authenticity of host '123.57.47.211 (123.57.47.211)' can't be established.ECDSA key fingerprint is SHA256:iy237yysfCe013/l+kpDGfEG9xxHxm0dnxnAbJTPpG8.Are you sure you want to continue connecting...
Axios Get Started
Axios是什么? Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。 主要功能 从浏览器创建 XMLHttpRequests 自动转换JSON数据 拦截请求和响应 ps: Axios功能很多详情请见官网(文末贴出) 基本使用 发送get请求 1234567891011121314axios.get('http://user/account/info',{ headers: { //添加请求参数 params: { userId:5, }, //添加token ...
基础算法
排序 快速排序 主要思想: 分治 实现步骤 确定分界点: q[l],q[(l+r)/2],q[l],随机.(四种任选一种) 调整区间 递归处理左右两段 复杂度分析 时间复杂度: O(nlogn)O(nlogn)O(nlogn) 空间复杂度: O(logn)O(logn)O(logn) 模板: 1234567891011121314151617181920212223242526272829303132#include<iostream>using namespace std;const int N=1e5+10;int q[N];void quick_sort(int l,int r){ //终止条件 if(l>=r) return ; //确定分界点 int x=q[l+r>>1],i=l-1,j=r+1; //调整区间 while(i<j){ do i++; while(q[i]<x); do j--; while(q[j]>x); ...
tmux的基本使用
tmux 是一个终端多路复用器(terminal multiplexer),其主要功能是允许用户在一个终端会话中同时运行多个独立的终端窗口. 功能 支持分屏功能 后台运行 持久化环境(断线重联) 结构 一个tmux可以包含多个session,一个session可以包含多个window,一个window可以包含多个pane。 示意图: 12345678910111213tmux: session 0: window 0: pane 0 pane 1 pane 2 ... window 1 window 2 ... session 1 session 2 ... 常用快捷键 tmux :...
浏览器访问后端静态资源问题
问题: 浏览器访问html成功但访问图片报404 环境: 后端是springboot项目用的是springmvc的web框架,浏览器是edge 过程: 一开始以为是文件放错位置了,访问静态资源spring默认是到static文件夹找(其实还有三个文件夹,我忘了hh),经过检擦 发现并没有放错,然后去网上寻找如何解决,但都是文件错或设置静态资源访问路径等等,没有得到解决,正在我发愁时突然想到 要不清一下浏览器缓存试试,啪!解决了我是真的无语,搞我一个多小时 解决: shift+alt+del快速清除浏览器缓存 ps: 以后还是搞两个浏览器,这个不行换另一个hh
Windows Terminal
快捷键 alt + shift + +/- 竖直或水平分割指定窗格 ctrl + 逗号 打开设置 shift + ctrl + w 关闭当前窗格 alt + 方向键 更换选中窗格 win + tilda(波浪线) 进入quake模式 此处给出官网地址:,Windows 终端概述 | Microsoft Learn ps:这里只列举了常用快捷键,更多快捷键可以到terminal查看和和修改 terminal 中集成git bash 1.下载git bash 谷歌搜索 git 如下图: 进入页面后: 下载(standalong installer版本)完成后打开安装包无脑下一步即可! 2.打开Windows terminal进行配置 快捷键 ctrl + 逗号 打开设置 左边选项栏最下面有一个添加新配置点击, 配置如下: 别忘保存 3.其他问题 1.配置完后按退格键会有闪屏现象 解决办法:新建一个~/.inputrc 文件,输入set bell-style none,保存;重启terminal,问题解决。 2.配置完后git bash...