Albert World


  • 首页

  • 归档

  • 标签

  • 分类

  • 工具

  • 关于

  • 搜索

MD5是用来加密的吗?BCrypt又是什么呢?

发表于 2021-10-31 | 更新于 2021-11-01 | 分类于 加密与认证 |
热度 ℃
  |   字数统计: 1,810(字)   |   阅读时长: 6(分)

前言

最近经常看到一种关于 MD5 的说法,比如某某系统的登录模块使用了 MD5 加密算法,保证了用户密码的安全。那么 MD5 究竟是不是一种加密算法呢?从概念上来说『加密』对应的是『解密』,我们把数据采用某种方式加密之后,可以在之后的某一时刻进行解密来获得原始数据,照此观点来说 MD5 并不是一种加密算法,它只能把原文加密成密文,而不能将密文解密成原文。但是 MD5 确实把明文变成了不容易被破解的密文,达到了 “加密” 的目的,好像说它可以用来加密勉强也可以。

阅读全文 »

linux环境下从路径字符串中截取目录和文件名信息

发表于 2021-10-24 | 更新于 2021-10-24 | 分类于 linux |
热度 ℃
  |   字数统计: 1,515(字)   |   阅读时长: 6(分)

前言

之前在文章《.bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息》中总结了在批处理文件中,也就是Windows环境下怎样从路径字符串中截取文件名、盘符等信息,利用的是Windows的扩展变量,而这种截取路径的需求在linux脚本中也很常见,实现方法相比批处理脚本而言要简单一些,下面列举一下常见的方法。

阅读全文 »

.bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息

发表于 2021-10-16 | 更新于 2021-10-17 | 分类于 bat |
热度 ℃
  |   字数统计: 1,830(字)   |   阅读时长: 8(分)

前言

又是实际开发中的问题,想要截取一个文件路径中的盘符、文件名等信息,第一反应是正则表达式?或者是 split 函数?这些往往都是“高级”语言中才会有的实现方法,对于批处理来说有点“带不动”啊,那么在bat批处理中要怎样处理类似的请求呢?最近找到了两种方法,接下来会逐一展示一下,不过在展示具体的写法前,我们先来看一下 %~dp0的含义。

阅读全文 »

C++11中的std::atomic保证的原子性是什么

发表于 2021-10-13 | 更新于 2021-10-13 | 分类于 C/C++ |
热度 ℃
  |   字数统计: 1,964(字)   |   阅读时长: 8(分)

前言

提到atomic这个词,你首先想到的是什么呢?作为一个长时间混迹于编程世界的菜鸟,我首先想到的一个词是“原子性”,接着飞入脑海的是 “ACID” 这个缩写词组,既然提到了 ACID 我们就来简单的复习一下。

ACID 是指事务管理的4个特性,常见于数据库操作管理中,它们分别是:原子性,一致性,隔离性和持久性。

阅读全文 »

Dijkstra——通过不断松弛来解决单源最短路径问题的算法

发表于 2021-09-11 | 更新于 2021-09-12 | 分类于 C/C++ |
热度 ℃
  |   字数统计: 1,839(字)   |   阅读时长: 7(分)

前言

Dijkstra算法又称迪杰斯特拉算法,它采用的是一种贪心的策略,使用广度优先搜索的方式解决带权有向图或者无向图的单源最短路径问题,需要注意的是它不能处理带负边权的情况,核心思想就是“守住现有阵地不断攻占底盘”,这一点可以在后面代码实现中慢慢体会,接下来梳理一下算法思路。

阅读全文 »

Floyd-Warshall——仅用4行代码就能解决多源最短路径问题的算法

发表于 2021-09-05 | 更新于 2021-09-07 | 分类于 C/C++ |
热度 ℃
  |   字数统计: 1,127(字)   |   阅读时长: 4(分)

前言

Floyd-Warshall算法简记Floyd算法,又称弗洛伊德算法,是解决任意两点间的最短路径问题的一种常用算法,核心思想就是“不断利用第三者影响原配关系”,这一点在4行核心代码中表现的淋漓尽致,接下来梳理一下算法思路。

阅读全文 »

从一个小题中的应用来体会下std::tie的便利之处

发表于 2021-08-15 | 更新于 2021-08-15 | 分类于 C/C++ |
热度 ℃
  |   字数统计: 1,746(字)   |   阅读时长: 7(分)

前言

今天主要学习一下 std::tie 函数的使用方法,之前看到 tie 函数是和 IO 绑定的,最近发现它是和 std::tuple 绑定的,查询资料后发现两个函数虽然名字相同,但是在不同的作用域下,今天学一下和 tuple 有关的这个 tie 函数,不过在学习之前先看一道小题。

阅读全文 »

C++中使用std::sort自定义排序规则时要注意的崩溃问题

发表于 2021-08-07 | 更新于 2021-08-08 | 分类于 C/C++ |
热度 ℃
  |   字数统计: 4,396(字)   |   阅读时长: 21(分)

前言

看到这个标题应该会有很多人一下子就懂了,也会有些人感到迷惑,简简单单排序怎么会奔溃呢?我第一次接触这个问题还是很久以前刚刚参加工作的时候,当时也是写出了导致程序崩溃的代码,通过上网查询解决了问题,至此以后就对这个 sort 函数警惕了一些,一直记得就是在sort的自定义函数中判断条件不要加等号,至于本质的原因一直没有去探究,正好最近又改了一个相关的问题,所以决定从源码和定义的角度来看看为什么会出现这个问题。

阅读全文 »

使用box2dweb做一个下落的小球,宝宝玩的不亦乐乎

发表于 2021-07-21 | 更新于 2021-08-08 | 分类于 Game |
热度 ℃
  |   字数统计: 2,041(字)   |   阅读时长: 8(分)

前言

红球球~ 蓝球球~

家里的宝宝就喜欢玩球球,特别是蓝色的,而最近正好找到了一个优秀的物理引擎,就拿它来做了一个下落的小球,宝宝玩的不亦乐乎~

起初我是想模拟一个小球在不同曲线上的运动状态,一直在找一个简易的重力引擎,找了一段时间没有什么收获,也想过自己写个重力系统,可是仔细想想觉得有点太麻烦,后来玩了一些flash游戏,发现这类依靠重力的作为主要玩法的游戏还真不少,肯定有一个好的引擎可以直接拿来用,然后就发现了 Box2D 这个物理引擎,不但带有重力系统,还支持碰撞。

阅读全文 »

C/C++中的数据类型转换static_cast/dynamic_cast/const_cast/reinterpret_cast

发表于 2021-07-10 | 更新于 2021-07-12 | 分类于 C/C++ |
热度 ℃
  |   字数统计: 3,506(字)   |   阅读时长: 14(分)

前言

C/C++属于静态语言,也就是在编译时变量的数据类型即可确定的强类型语言。当不同的数据类型在一起运算或者相互赋值的时候,就需要进行数据类型转换。不同数据类型占用的内存空间不同,而各种数据类型的转换时有规则的,一种通用的规则就是“小转大”自动进行,“大转小”需要强制执行。这里的“大”和“小”指的是数据范围。

阅读全文 »
1…8910…23
Albert Shi

Albert Shi

阳光总在风雨后,大雨过后是冰雹

225 日志
36 分类
539 标签
RSS
GitHub 简书 StackOverflow CSDN 知乎 墨天轮
Links
  • Web前端导航
  • 文字编码导航
  • 在线代码编译
  • 在线工具集合
  • 在线教程集合
© 2018 - 2023 Albert Shi
Hexo 强力驱动
主题 - NexT.Mist
Unless otherwise specified, this blog is licensed under a CC BY-NC-ND 4.0 International License.
 京公网安备11010102007022号     冀 ICP 备 2022029255 号 - 1.