Hsz's Blog

现代魔法及其影响与应用

网络身份认证

网络身份认证 网络令牌技术很早就被应用在通信安全领域,通常是作为身份认证的工具. TLS已经可以解决通信安全问题,但它的问题在于太重了 不带客户端验证的TLS无法确认客户端的合法性 带客户端验证的TLS使用非常不便 通常我们都是使用的不带客户端验证的TLS,然后再通过其他方式验证客户端的合法性. JWT就是用于解决客户端合法性验证的一项技术. 身份认证问题 身份...

TLS与通信安全

TLS与通信安全 互联网的通信安全是建立在SSL/TLS协议之上. 从明文通信到TLS加密通信 在TLS出现之前的蛮荒时代,数据都是明文传输的,明文传输的缺点当然就很明显–消息在每个经过的节点上都可以被读出窃取到.因此早期qq经常会有盗号的,那就是明文传输的锅. 总结来说明文传输的风险点有3个: 窃听风险(eavesdropping):第三方可以获知通信内容...

使用Jenkins代替GithubActions自动化工作流

使用Jenkins代替GithubActions自动化工作流 CI/CD是现代开发体系中提高工作效率的基础.我们知道一般开发行为中开发编码的时间往往只占30%,剩下的全是测试和部署.如果可以降低测试和部署的时间那就可以大大提高工作效率. CI/CD就是这样的工具,它的作用就是利用脚本自动化测试和部署. 在Github Actions出现之前,Github上也是使用第三方CI/CD工具的,...

使用Gitea代替Github托管代码

使用Gitea代替Github托管代码 Github虽好,但它不是开源的!它是代码托管的服务商.确实Github做的非常好用,大家用起来也非常方便,但不要忘记,它不是开源的!使用它你需要冒被限制账号甚至被封号的风险.毕竟伊朗人已经被封了. 没错这不符合开源精神,但是它本来就不是开源的!因此我们有必要给Github找个备胎,甚至摆脱Github自己来.Gitea就是一个相当靠谱的选择. ...

使用GithubActions自动化工作流

使用GithubActions自动化工作流 Github在2019年底开放了内置的CI/CD工具GithubActions.这样使用Github托管的代码终于有了不借助外部服务自动化测试打包部署的能力. 同时由于后发优势,GithubActions几乎是目前最易用的CI/CD工具. GithubActions类似于传统的CI/CD工具,都是使用代码配置脚本,执行器执行脚本,页面管理执行...

使用Sphinx写项目文档

使用sphinx写项目文档 Sphinx是一个开源的python文档生成器,这里有一个中文的使用手册,它采用reStructuredText作为默认的源文件格式,也可以配置使用markdown作为源文件,可以输出为html文件或者pdf文件(需要latex)等多种格式. 由于它自带解析python docstring的功能,因此非常适合用于给python项目做接口文档.通过其他第三方插...

使用docsify写文档

使用docsify写文档写文档 在前面我们已经介绍了jekyll和sphinx,他们都是非常优秀的静态页面生成工具,但他们有一个共同的缺陷–需要先编译才能使用. docsify走在了他们前面.它本质上就是一个可以渲染markdown资源的单页应用,我们只需要写markdown然后挂在http服务器上就可以了.它的主要优势是: 不用编译 前端渲染,只占用阅读者机器的资源 ...

使用Jekyll构建博客

使用Jekyll构建博客 jekyll是Github Pages默认支持的静态网站生成器,它支持类似jinjia2的模板格式Liquid,而且支持markdown格式. 使用它你在第一次配置好后就可以专注于写文档了. jekyll安装与配置 jekyll是一个ruby写的静态网站渲染器,它本质上是一个ruby程序.因此我们首先需要有ruby环境. 安装ruby环境 ...

外网连接内部局域网的方法

外网连接内部局域网的方法 在实践中我们通常会在组织内构建一个局域网用于部署开发环境和一些日常工作所需的服务,比如nas,比如代码仓库.我们会希望内网足够安全的同时,外网也可以有一些途径可以访问到内网.归纳起来有如下几种方式: 静态外网ip端口映射 外网ip动态映射 静态外网ip端口映射 原理很简单,每个用户都会有一个外网ip,这个ip可以在...

在Github上托管项目代码

在Github上托管项目代码 Github是一个相当成熟的代码托管平台,我们除了可以在上面找开源项目外,更重要的是可以借助它自己构建自己的开源项目. 不要认为只有大型开源项目才是开源项目. 开源项目本身并不一定是直接可用的软件,也可以是一个包,一个简单的命令行工具等;为开源项目贡献代码也不一定要真的参与编程,为它写文档,提工单也是在为开源项目做贡献. 这些都可以在Github上实现....