素数,又称质数,我们在小数数学课上就已经学习到其概念:是指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数。
素数的概念简单至极,但对其的研究,却是数学家们终其一生的目的。当然,本篇文章不是讨论数学中对素数的研究,而是素数在现代密码学中的应用。
coolcao的code点滴
素数,又称质数,我们在小数数学课上就已经学习到其概念:是指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数。
素数的概念简单至极,但对其的研究,却是数学家们终其一生的目的。当然,本篇文章不是讨论数学中对素数的研究,而是素数在现代密码学中的应用。
本文转载自 如何正确对用户密码进行加密?。由刘志勇翻译自Defuse Security团队的文章Salted Password Hashing - Doing it Right
作为一名Web开发人员,我们经常需要与用户的帐号系统打交道,而这其中最大的挑战就是如何保护用户的密码。经常会看到用户账户数据库频繁被黑,所以我们必须采取一些措施来保护用户密码,以免导致不必要的数据泄露。保护密码的最好办法是使用加盐密码哈希( salted password hashing)。
在对密码进行哈希加密的问题上,人们有很多争论和误解,可能是由于网络上有大量错误信息的原因吧。对密码哈希加密是一件很简单的事,但很多人都犯了错。本文将会重点分享如何进行正确加密用户密码。
重要警告:请放弃编写自己的密码哈希加密代码的念头!因为这件事太容易搞砸了。就算你在大学学过密码学的知识,也应该遵循这个警告。所有人都要谨记这点:不要自己写哈希加密算法! 存储密码的相关问题已经有了成熟的解决方案,就是使用 phpass,或者在 defuse/password-hashing 或 libsodium 上的 PHP 、 C# 、 Java 和 Ruby 的实现。
看到一篇文章,介绍在反爬虫过程中,前端工程师的各种脑洞,文章见这里。
文章里介绍了几个大的网站,在反爬虫过程中,采取的各式各样的策略,无不体现出前端工程师的奇葩脑洞。
还挺有意思的,就简单分析了一下,针对每个方案,看看有没有解决办法,于是整理成博客,记录一下。
习惯了vscode,现阶段因工作需要需切换到java做项目,因此就想看看能不能配置一下vscode来写java,配置完后,发现效果还不错,也有一些小发现,这里将过程记录一下,以备后续用。
使用async/await写代码很长一段时间了,在之前,用 co+生成器函数+yield也有一段时间,用起来很爽,但却没有仔细了解其中的原理。
为啥异步的代码,使用async/await或者Generator+yield能写成“同步”的?co又是啥,为啥Generator+yield要用co进行包裹?
今天在看《你不知道的 js》这本书时,无意看到 Object 还有个方法叫做 getOwnPropertySymbols()
,用来获取对象的 Symbol 属性。记得之前看过一些文章说,可以使用 Symbol 来实现私有属性,如果能直接使用 getOwnPropertySymbols()
方法获取 Symbol 属性,那还是私有属性么?
今天复习整理一下关于 js 中创建私有属性的一些问题。
由于 js 并不是 Java 那种类式面向对象,因此即使 es6 添加了 class 支持,js 根上还是基于原型的面向对象,不支持什么私有,公有属性的。
要想实现私有属性,基于现有的 js,途径只有一个: 闭包。
微软的vscode编辑器是开发typescript项目的不二首选,其本身也是采用typescript开发的。
使用过ts的同学都知道*.d.ts
类型声明文件,其管理工具,从最初的tsd
,到后来的typings
,一直到现在的@types
,类型声明文件为ts的智能提示,类型检查提供了有力支持。
我们也可以使用类型声明文件,增强vscode编辑javascript时的智能提示。
关于vscode这方面更深的说明,请访问以下链接:
闭包是js中一个晦涩难懂的一个概念,网上关于闭包的文章也是抓一大把,每个人的文章却又不尽相同,或者说,每个人的理解都不一样。
最近在写一个博客的小项目,对接github的钩子,当提交markdown工程至github时,通过设置github的钩子,程序获取提交的markdown源码,包括新增,更新,删除的文件列表,然后将其拉取到数据库。前端解析markdown文本至html页面展示。
中间遇到一个很有意思的问题:目录的解析。
nodejs的优势在于编写高性能的网络服务,而网络请求中,Stream和Buffer是其基础,因此理解这两个概念至关重要。
而Buffer又是Stream的基础,所以,先来看看Buffer吧。然后再去搞Steam。