正则表达式 发表于 2021-04-12 更新于 2024-06-06 Valine: 元字符 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 (包括空格,制表符,换行符,中文全角空格等) \d 匹配数字 \b 匹配单词的开始或结束 并不匹配这些单词分隔字符中的任何一个,它只匹配一个位置 ^ 匹配字符串的开始 $ 匹配字符串的结束 阅读全文 »
密码学 发表于 2021-04-10 更新于 2021-05-26 Valine: 哈希定义 把任意长度的输入通过哈希算法变换成固定长度的输出,该输出就是散列值。 这种转换是一种压缩映射。散列值又称摘要(Digest)、校验值(Checksum)、指纹(Fingerprint) 用途 完整性校验 加密 阅读全文 »
LRU 发表于 2021-04-10 更新于 2021-05-26 Valine: 概念LRU 全称是 Least Recently Used,即最近最久未使用算法,它是页面置换算法的一种。 原理LRU 算法根据数据的历史访问记录来进行淘汰数据,其核心思想是「如果数据最近被访问过,那么将来被访问的几率也更高」。 阅读全文 »
Base64 Unicode UTF8 发表于 2021-04-10 更新于 2021-05-26 Valine: Base64编码定义 Base64 就是把64个字符(a-z,A-Z,0-9,+,/)以及一个作为垫字的’=’(实际65个)作为基本字符集。然后把所有其他的字符转化为这个字符集中的字符。 传输内容时,经常将内容进行base64编码,防止内容的丢失。 步骤 第一步 将每三个字节作为一组,一共是24个二进制位。 第二步 将这24个字节分为四组,每组6个二进制位。 第三步 每组前面加两个0,扩展成32位二进制位,即四个字节。 第四步 根据下表,得到扩展后每个字节对应的符号,构成Base64编码值。 补充 因为Base64 将3个字节转化为4个字节,所以编码后 内容会比原来长三分之一左右。 阅读全文 »
OAuth 发表于 2021-04-10 更新于 2021-05-26 Valine: OAuth 作用 让”客户端”安全可控地获取”用户”的授权,与”服务商提供商”进行互动。 思路 OAuth在”客户端”与”服务提供商”之间,设置了一个授权层(authorization layer) 。”客户端”不能直接登录”服务提供商”,只能登录授权层,以此将用户与客户端区分开来。”客户端”登录授权层所用的令牌(token),与用户的密码不同。用户可以在登录的时候,指定授权层令牌的权限范围和有效期。”客户端”登录授权层以后,”服务提供商”根据令牌的权限范围和有效期,向”客户端”开放用户储存的资料。 阅读全文 »
排序算法 发表于 2021-04-08 更新于 2021-05-26 Valine: 选择排序1234567891011121314151617func selectSort(arr []int) { // 遍历n轮 for i := 0; i < len(arr); i++ { // 找到当前数组范围内的最小值的小标 minIndex := i for j := i; j < len(arr); j++ { // 找到最小的 if arr[minIndex] > arr[j] { minIndex = j } } // 如果最小值下标和头部下标不同就进行交换 if minIndex != i { arr[i], arr[minIndex] = arr[minIndex], arr[i] } }} 阅读全文 »