Crypto 1

说实话这是第一次接触到这种密码学,在了解了一些古典密码之后我真的挺感兴趣的。

【easy】上课认真听了吗? 这道题一开始拿到确实挺懵的,不知道怎么处理,因为这个不在我目前了解过的密码中(当然是因为我也不知道什么),后来自己去查了一下了解到了Base系列编码

那么很显然这道题就是Base16编码了,直接搜索Base16编码转换器就解决了。这道题本质上是很简单的,但其让我知道搜索引擎是很强大的,要学会利用搜索。

同样的道理【super easy】base64 【super easy】Caesar 题目就给出了编码类型,名副其实super easy。至于【easy】凯撒+栅栏 这道题就需要先用栅栏密码进行还原,还原到{之前只有四个字母,再用凯撒进行移位。【easy】解密大师 这个上有三种类型的编码,分别为Base 64,摩斯,与佛论禅。

【变异凯撒】这道题真的困扰我很久,因为不知道怎么处理。当然最后还是没有想出来,就找了点外援(真的不会啊),上网查了一下,真的很神奇。下面我简单说一下我理解的思路:

首先在使用了凯撒密码解密器之后发现都不行,这就有点不一样了,在具体了解了一下经典的凯撒密码应该是字母在字母表中移位,按理来讲应该都是字母才对。可是密文中有数字,_,^,这个就说明不是按照字母表来移位的,应该是ascii码表。那么现在就是来看一下具体移位情况了,这里编码计算

这里是使用flag与afZ_进行对应,很明显可以看出移位是有规律的,接下来继续编码计算

最后得出最终答案(代码是自己写的)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
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 文档以获取更详细的信息和使用方法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值