crypto密码总结

base64编码:字母A-Z、a-z、数字0-9

base32编码:大写字母(A-Z)和数字234567

base16编码:数字0-9以及大写字母ABCDEF

base91编码

例:@iH<,{bdR2H;i6*Tm,Wx2izpx2!

ASCII密码

数字0~9对应的ASCII码(十进制)袭为“48”~“57”

大写字母A~Z对应的ASCII码(十进制)为“65”~“90”

小写字母a~z对应的百ASCII码(十进制)为"97"~“122”

摩斯密码:点和横的组合,相当于二进制编码

还有一种是由0和1构成,每段长度不一样,可能由空格、tab或则其他字符分割,将0和1替换成.和_,再进行解密

网站:http://ctf.ssleye.com/morse.html

栅栏密码:大小写和字符

把要加密的明文分成N个一组,然后把每组的第1个字符组合,每组第2个字符组合…每组的第N(最后一个分组可能不足N个)个字符组合,最后把他们全部连接起来就是密文。不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。(一般不超过30个,也就是一、两句话)

明文:THE LONGEST DAY MUST HAVE AN END

加密:

1、把将要传递的信息中的字母交替排成上下两行。

T E O G S D Y U T A E N N

H L N E T A M S H V A E D

2、 密文:

将下面一行字母排在上面一行的后边。

TEOGSDYUTAENN HLNETAMSHVAED

解密:

先将密文分为两行

T E O G S D Y U T A E N N

H L N E T A M S H V A E D

再按上下上下的顺序组合成一句话

明文:THE LONGEST DAY MUST HAVE AN END

栅栏密码变形:W型

例:

解密加密网站:栅栏密码_栅栏密码在线加密解密【W型】-ME2在线工具

Ook密码:Ook和三个标点(.!?)

要么就是没有Ook只有标点

网站:https://www.splitbrain.org/services/ook

Brainfuck密码:+,-,[],<>组成

jsfuck密码+,!,(),[]

 凯撒密码:英文字母排序偏移

明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC

例:攻防世界Caesar

棋盘密码:一种查表加密法,小写字母(数字没两个一组,数字范围为1~5)

网站:https://www.qqxiuzi.cn/bianma/qipanmima.php 

银河密码

猪圈密码

 md5编码:一般为32位,由数字和小写字母组成(数字1~9,字母a~f)

希尔密码:是运用基本矩阵论原理的替换密码,每个字母当作26进制数字:A=0, B=1, C=2... 一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得出的结果MOD26。

例题:bugku 小山丘的秘密

希尔解密即可

希尔密码加密/解密 - 一个工具箱 - 好用的在线工具都在这里!

Unicode编码 :每一字符都用一个5位字符编码表示,并用\分割

核心价值观编码

 键盘解密

例1:qwerty键盘

bhjm,6tghu7,wazxde,3wsdr4,xdfv,bhjm,ujko98,7yhji8,0ol

bhjm:在键盘上将26个字母中的n包围了
6tghu7:在键盘上将26个字母中的y包围了
wazxde:在键盘上将26个字母中的s包围了
3wsdr4:在键盘上将26个字母中的e包围了
xdfv:在键盘上将26个字母中的c包围了
bhjm:在键盘上将26个字母中的n包围了
ujko98:在键盘上将26个字母中的i包围了
7yhji8:在键盘上将26个字母中的u包围了
0ol:在键盘上将26个字母中的p包围了

例2:手机键盘

33是指第三个按键里的第三个字母,既F。53则指第五个按键的第三个字母L

佛箴言密码:

解密网站:与佛论禅 

当铺密码中文和数字进行转化的密码,算法相当简单:当前汉字有多少笔画出头,就是转化成数字几(俺称笔画密码)

 词频密码:

加密网站:quipqiup - cryptoquip and cryptogram solver

urlencode编码:将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%ab格式。

空格ASCII码是32,对应16进制是20,那么urlencode编码结果是:%20,但在新标准中空格对应的是+。字母是不进行编码的

sha1编码40 位(由数字和小写字母组成)

博多密码:是一种5位代表一个字节的编码。每一个字母都由五个单位的电流开或关信号组成,它们的持续时间相等,进而来传达信息

网站:https://www.boxentriq.com/code-breaking/baudot-code  

培根密码:加密时,明文中的每个字母都会转换成一组五个英文字母。

网站:Baconian Cipher

杰弗逊转轮加密

 首先查看密钥第一个字符为2,因此我们需要到加密表中去查找第2行的数据 2: < KPBELNACZDTRXMJQOYHGVSFUWI < 这里我们再利用密文的第一个字符N进行旋转,N在这里的作用就是旋转过后的第一个字符即为N,在这里的旋转为循环,不为补0 因此我们可以来对加密表中的第一段密文进行解密: 原先:KPBELNACZDTRXMJQOYHGVSFUWI 旋转:NACZDTRXMJQOYHGVSFUWIKPBEL

盲文密码

数字盲文: 

 英文字母盲文:

 汉语拼音盲文声母表:没有全部举出,随便截了点,大概知道点 

QWE密码:QWE格式密码就是QWERTYUIOP ASDFGHJKL ZXCVBNM 依次表示字母ABCDEFGHIJKLMNOQRSTUVWXYZ。

BubbleBabble密码解密/加密:

例:bugku EN-气泡

套娃解密三次

解密网站:​​​​​​CTF在线工具-在线BubbleBabble编码|Bubble编码|BubbleBabble解码|BubbleBabble编码原理|BubbleBabble编码算法元音密码:元音密码表(1~5开头的数字)

 例:bugku Math&English

7*9-9=54,算错一个(草率😂)算出来的数字跟字母表一一对应 

ROT13解密:

ROT13回转十三位,是一种简易的替换式密码, 也是过去在古罗马开发的凯撒加密的一种变体。

 

例:buuctf 看我回旋踢

解密网站:ROT13 @ http://www.rot13.de/ 

  • 6
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node.js 中的 crypto 是一个内置模块,用于提供加密和解密功能。它支持各种加密算法和操作,包括哈希函数、对称加密和非对称加密。你可以使用 crypto 模块来实现数据的加密、解密、签名和验证等操作。 要使用 crypto 模块,你需要在你的代码中引入它,例如: ```javascript const crypto = require('crypto'); ``` 一些常见的 crypto 操作包括: 1. 哈希函数:crypto 模块提供了多个哈希函数,如 MD5、SHA-1、SHA-256 等。你可以使用这些函数对数据进行哈希处理,生成唯一的摘要。例如: ```javascript const hash = crypto.createHash('sha256'); hash.update('Hello, world!'); const digest = hash.digest('hex'); console.log(digest); // 输出生成的摘要 ``` 2. 对称加密:crypto 模块支持对称加密算法,如 AES、DES、3DES 等。你可以使用这些算法对数据进行加密和解密。例如: ```javascript const cipher = crypto.createCipher('aes192', 'password'); let encrypted = cipher.update('Hello, world!', 'utf8', 'hex'); encrypted += cipher.final('hex'); console.log(encrypted); // 输出加密后的数据 const decipher = crypto.createDecipher('aes192', 'password'); let decrypted = decipher.update(encrypted, 'hex', 'utf8'); decrypted += decipher.final('utf8'); console.log(decrypted); // 输出解密后的数据 ``` 3. 非对称加密:crypto 模块还支持非对称加密算法,如 RSA。你可以使用这些算法生成公钥和私钥,进行加密和解密。例如: ```javascript const { publicKey, privateKey } = crypto.generateKeyPairSync('rsa', { modulusLength: 4096, publicKeyEncoding: { type: 'spki', format: 'pem' }, privateKeyEncoding: { type: 'pkcs8', format: 'pem' } }); console.log(publicKey); // 输出生成的公钥 console.log(privateKey); // 输出生成的私钥 const encrypted = crypto.publicEncrypt(publicKey, Buffer.from('Hello, world!')); console.log(encrypted.toString('base64')); // 输出加密后的数据 const decrypted = crypto.privateDecrypt(privateKey, encrypted); console.log(decrypted.toString('utf8')); // 输出解密后的数据 ``` 这只是 crypto 模块的一小部分功能,你可以查阅 Node.js 文档以获取更详细的信息和使用方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值