crypto-music is frequency(INS‘hAck CTF 2018)

news2025/7/13 22:00:52

比较有趣的一题,记录下来。

Music is frequency

Passionated by the sound of a nursery rhyme, we decided to build a new way to send private messages.
Find a way to decrypt our rsa private key to get your reward.
Because we are pretty bad musicians, we have decided to not take into account any rhythm and to round all used number to the closest.

题目同时提供的一张 Frere Jacques 歌曲的乐谱
在这里插入图片描述

还有两个文件:

#flag.enc
vzs9XGL8QMJcc/OSpU5p/Iz5VpPZ9dHp6KUeaJXD7U3iQ/K9+BiT5ku/ZLGXua04uDiZUqyCVq6Qz8ovC8W7gQYI10vTuVbg3JX0848caJQYm7QVBleUJQP77AN6WH94CcWSfhgTQ0hVcHrx80aFcfwHYFLNA8kSJRVw44mwxcMiXu5CjqghFSf9lYBSbdRlV9zr9MHua5+xo5JdYQ0s+kUpgo+8pioOupBIWrPeKM6hkwseQEpM3zbmvjs6honNkZmtXKjHik6LBt/SoZJghIvxrQnUJ6RbvZbLugAzaTeMg3ROL/n8ArUvAGOcw0QzjyrJpSU9iPm2y+VPnrpTDA==
#privatekey.bin
00000000h: 1D 1D 1D 1D 1D 72 75 76 79 7F 10 63 62 70 10 61 ; .....ruvy..cbp.a
00000010h: 62 79 66 71 64 75 10 7A 74 69 1D 1D 1C 1D 1D 3A ; byfqdu.zti.....:
00000020h: 7D 79 79 75 5F 47 79 73 70 71 7A 72 70 61 75 71 ; }yyu_Gyspqzrpauq
00000030h: 4A 7D 1B 6A 07 60 60 61 5A 09 5C 07 52 5E 79 70 ; J}.j.``aZ.\.R^yp
00000040h: 64 49 47 42 5A 55 58 7F 01 66 5C 5B 55 75 52 6B ; dIGBZUX..f\[UuRk
00000050h: 07 59 53 71 03 69 61 7F 73 53 5F 46 43 5F 46 58 ; .YSq.ia.sS_FC_FX
00000060h: 3A 72 65 03 48 53 68 4B 7E 45 79 4B 42 52 00 05 ; :re.HShK~EyKBR..
00000070h: 64 7B 05 47 61 45 47 73 02 5C 69 64 5D 72 78 1E ; d{.GaEGs.\id]rx.
00000080h: 64 53 73 73 58 4A 04 74 7E 49 04 59 48 5D 52 1F ; dSssXJ.t~I.YH]R.
00000090h: 7D 79 7B 5D 69 62 49 5B 5D 5B 7E 66 06 72 7C 52 ; }y{]ibI[][~f.r|R
000000a0h: 65 3A 56 67 7B 72 47 79 7D 40 53 64 43 7D 06 5B ; e:Vg{rGy}@SdC}.[
000000b0h: 5E 62 52 55 02 5D 59 77 4B 43 58 7D 41 48 5E 06 ; ^bRU.]YwKCX}AH^.
000000c0h: 7F 66 03 02 53 5A 62 5F 48 45 59 54 59 7D 77 76 ; .f..SZb_HEYTY}wv
000000d0h: 67 76 73 5D 49 5C 7D 72 7A 77 05 46 41 41 06 5C ; gvs]I\}rzw.FAA.\
000000e0h: 08 09 3A 05 57 7D 56 40 47 04 47 67 5F 08 09 76 ; ..:.W}V@G.Gg_..v
000000f0h: 7D 61 65 7F 74 48 5C 5B 7E 09 7D 65 05 77 64 1A ; }ae.tH\[~.}e.wd.
00000100h: 47 47 75 66 59 04 70 00 46 7D 72 7A 64 48 7F 7B ; GGufY.p.F}rzdH.{
00000110h: 66 48 08 6A 76 01 5E 1E 07 7C 65 67 49 58 7E 40 ; fH.jv.^..|egIX~@
00000120h: 03 73 58 3A 51 59 61 00 62 01 74 50 43 44 75 59 ; .sX:QYa.b.tPCDuY
00000130h: 66 00 49 59 68 04 7D 7D 7E 4B 03 7B 09 02 53 59 ; f.IYh.}}~K.{..SY
00000140h: 5D 46 78 05 5A 68 40 7D 74 65 7E 01 74 7C 52 41 ; ]Fx.Zh@}te~.t|RA
00000150h: 64 73 53 01 01 45 65 67 05 04 53 77 4B 01 42 59 ; dsS..Eeg..SwK.BY
00000160h: 76 5E 40 61 3A 07 7F 61 69 6A 54 07 72 5F 47 73 ; v^@a:..aijT.r_Gs
00000170h: 49 59 74 52 47 49 45 7C 09 07 5E 7B 52 1F 05 61 ; IYtRGIE|..^{R..a
00000180h: 74 74 62 45 59 77 5F 62 43 54 60 78 75 71 61 71 ; ttbEYw_bCT`xuqaq
00000190h: 72 71 5F 79 72 71 73 5C 65 50 71 7A 74 72 60 41 ; rq_yrqs\ePqztr`A
000001a0h: 1F 71 09 03 5C 3A 51 7B 49 40 7D 57 5D 46 66 60 ; .q..\:Q{I@}W]Ff`
000001b0h: 64 5A 5A 67 05 66 59 76 07 58 1B 5A 5E 1A 58 57 ; dZZg.fYv.X.Z^.XW
000001c0h: 40 78 03 45 72 78 47 04 5F 41 76 52 73 55 56 4B ; @x.ErxG._AvRsUVK
000001d0h: 6A 64 78 5B 5B 77 5C 7D 5F 70 49 72 72 1A 02 5D ; jdx[[w\}_pIrr..]
000001e0h: 65 67 57 08 43 49 3A 09 75 75 7F 64 45 45 40 5E ; egW.CI:.uu.dEE@^
000001f0h: 47 09 65 66 43 56 72 1A 68 68 65 76 75 52 49 7B ; G.efCVr.hhevuRI{
00000200h: 66 71 46 60 08 77 59 56 72 52 5F 57 68 73 71 1E ; fqF`.wYVrR_Whsq.
00000210h: 7A 60 58 62 63 7F 75 77 02 77 73 00 45 76 63 66 ; z`Xbc.uw.ws.Evcf
00000220h: 73 07 05 08 47 76 55 3B 03 05 5D 42 61 55 47 53 ; s...GvU;..]BaUGS
00000230h: 55 52 42 7B 46 75 02 60 57 49 07 02 40 6B 4A 77 ; URB{Fu.`WI..@kJw
00000240h: 05 63 75 66 74 5C 45 09 61 4B 65 5E 65 5E 01 52 ; .cuft\E.aKe^e^.R
00000250h: 47 60 77 05 76 51 48 01 4B 77 79 64 45 45 5E 48 ; G`w.vQH.KwydEE^H
00000260h: 46 51 57 71 06 1B 03 55 3B 59 1A 7B 68 47 69 1F ; FQWq...U;Y.{hGi.
00000270h: 7E 41 7F 7B 51 05 1F 7F 41 05 1F 68 00 70 4A 05 ; ~A.{Q...A..h.pJ.
00000280h: 78 73 58 58 54 73 62 5C 7B 5F 55 64 76 05 48 08 ; xsXXTsb\{_Udv.H.
00000290h: 5B 47 77 56 67 59 75 61 60 59 67 5C 7F 7A 50 6A ; [GwVgYua`Yg\.zPj
000002a0h: 41 5B 4A 7B 78 6A 02 47 7B 3A 5E 52 45 04 07 42 ; A[J{xj.G{:^RE..B
000002b0h: 66 40 41 62 58 02 54 47 42 06 50 09 44 71 04 49 ; f@AbX.TGB.P.Dq.I
000002c0h: 75 01 6A 7E 42 61 74 57 5B 68 06 73 49 5E 66 57 ; u.j~BatW[h.sI^fW
000002d0h: 07 75 7A 45 7D 1B 66 54 61 1F 02 6A 7E 02 70 1E ; .uzE}.fTa..j~.p.
000002e0h: 79 41 03 69 7E 7B 04 6A 09 45 3A 60 41 76 7D 49 ; yA.i~{.j.E:`Av}I
000002f0h: 04 75 73 57 69 75 70 4A 01 52 5A 56 7E 58 75 65 ; .usWiupJ.RZV~Xue
00000300h: 01 06 5D 51 08 77 4B 7D 1B 5F 53 79 63 5C 45 08 ; ..]Q.wK}._Syc\E.
00000310h: 58 7F 7B 40 46 55 7A 08 76 09 5F 7F 40 60 04 6A ; X.{@FUz.v._.@`.j
00000320h: 59 61 78 7E 68 64 74 55 46 5A 54 3B 54 69 79 7C ; Yax~hdtUFZT;Tiy|
00000330h: 5F 06 63 4A 7A 73 48 01 47 02 49 44 70 72 03 1A ; _.cJzsH.G.IDpr..
00000340h: 59 72 04 7A 7C 46 08 48 08 67 56 55 5F 68 74 5E ; Yr.z|F.H.gVU_ht^
00000350h: 61 67 59 75 59 64 63 79 48 47 62 67 72 40 7D 7D ; agYuYdcyHGbgr@}}
00000360h: 54 5B 7E 62 62 73 46 44 46 43 46 64 3B 08 47 7C ; T[~bbsFDFCFd;.G|
00000370h: 59 68 51 09 7B 66 69 41 5C 5B 55 09 66 61 4B 52 ; YhQ.{fiA\[U.faKR
00000380h: 57 67 5D 75 74 52 59 02 44 59 42 05 05 71 4A 51 ; Wg]utRY.DYB..qJQ
00000390h: 77 58 60 04 59 71 7C 5B 53 66 78 65 62 54 4A 74 ; wX`.Yq|[SfxebTJt
000003a0h: 49 45 7A 65 73 57 69 74 71 1E 7F 73 1A 3B 02 08 ; IEzesWitq..s.;..
000003b0h: 56 40 52 71 76 63 02 7E 7D 78 78 60 7F 03 65 5E ; V@Rqvc.~}xx`..e^
000003c0h: 67 60 49 40 71 7F 48 67 6A 01 73 5B 03 56 48 57 ; g`I@q.Hgj.s[.VHW
000003d0h: 56 67 7E 53 1F 62 5D 79 53 50 46 07 76 05 78 78 ; Vg~S.b]ySPF.v.xx
000003e0h: 56 71 48 4A 02 67 06 78 72 7E 7D 65 7D 05 3B 55 ; VqHJ.g.xr~}e}.;U
000003f0h: 62 1F 60 55 68 64 53 73 43 61 7F 5B 5B 73 44 1A ; b.`UhdSsCa.[[sD.
00000400h: 56 6A 6A 78 75 7E 52 58 52 5C 05 53 64 04 60 5B ; Vjjxu~RXR\.Sd.`[
00000410h: 64 79 73 77 44 56 76 5F 5E 44 7F 66 5E 61 62 49 ; dyswDVv_^D.f^abI
00000420h: 7C 43 63 61 7E 55 56 5B 09 04 4B 4B 57 63 03 3A ; |Cca~UV[..KKWc.:
00000430h: 53 6A 04 45 61 5D 64 55 69 74 58 68 60 52 7D 41 ; Sj.Ea]dUitXh`R}A
00000440h: 79 77 47 5A 7B 71 62 6B 53 52 60 06 52 67 02 08 ; ywGZ{qbkSR`.Rg..
00000450h: 71 76 49 7D 74 02 75 72 56 69 71 61 45 76 63 78 ; qvI}t.urViqaEvcx
00000460h: 5D 06 07 61 5C 59 1B 62 61 45 5B 63 7B 55 44 55 ; ]..a\Y.baE[c{UDU
00000470h: 3A 60 00 04 08 40 62 6B 5D 5F 65 43 56 73 40 62 ; :`...@bk]_eCVs@b
00000480h: 67 00 62 65 5D 48 69 73 61 7C 5B 5A 63 60 57 67 ; g.be]Hisa|[Zc`Wg
00000490h: 45 58 77 45 42 5F 03 5D 7D 64 7D 5C 68 54 5D 61 ; EXwEB_.]}d}\hT]a
000004a0h: 7F 52 06 69 49 75 65 5C 43 7C 1B 58 54 7B 40 70 ; .R.iIue\C|.XT{@p
000004b0h: 5B 3A 4A 48 5B 60 7B 1E 48 72 5A 67 65 7C 43 41 ; [:JH[`{.HrZge|CA
000004c0h: 7F 07 09 5C 55 45 74 02 04 52 5E 06 7B 60 4B 7A ; ...\UEt..R^.{`Kz
000004d0h: 47 5D 01 41 1F 7F 79 78 76 71 43 47 69 61 7A 6B ; G].A..yxvqCGiazk
000004e0h: 7C 43 09 01 07 52 07 64 64 09 59 03 69 7D 54 63 ; |C...R.dd.Y.i}Tc
000004f0h: 74 7B 3A 7D 68 40 5A 1F 7A 62 71 45 5C 61 76 61 ; t{:}h@Z.zbqE\ava
00000500h: 77 7D 04 49 6A 03 42 57 61 7B 72 57 60 74 78 53 ; w}.Ij.BWa{rW`txS
00000510h: 79 5F 1F 6A 5E 06 53 66 44 60 02 70 7B 7A 02 5F ; y_.j^.SfD`.p{z._
00000520h: 60 69 59 53 02 00 68 7A 77 48 09 43 52 46 5B 1F ; `iYS..hzwH.CRF[.
00000530h: 56 5C 06 3A 64 42 54 50 73 62 1F 57 61 40 09 67 ; V\.:dBTPsb.Wa@.g
00000540h: 41 64 73 7B 54 76 78 5E 02 74 5E 7F 6B 4A 41 79 ; Ads{Tvx^.t^.kJAy
00000550h: 64 74 52 42 65 68 5E 69 5B 43 66 09 7A 48 07 70 ; dtRBeh^i[Cf.zH.p
00000560h: 54 57 61 75 54 7F 42 5C 49 5F 75 03 49 7A 42 59 ; TWauT.B\I_u.IzBY
00000570h: 09 5B 40 04 3A 05 02 65 59 43 05 5B 49 00 46 59 ; .[@.:..eYC.[I.FY
00000580h: 47 06 05 6A 79 02 68 63 53 7C 5A 45 7A 7B 73 03 ; G..jy.hcS|ZEz{s.
00000590h: 7A 76 73 54 09 72 44 5A 01 62 75 41 41 52 79 00 ; zvsT.rDZ.buAARy.
000005a0h: 06 1B 54 41 64 01 47 77 06 62 48 70 00 50 58 53 ; ..TAd.Gw.bHp.PXS
000005b0h: 66 61 77 01 03 3A 6A 44 7B 56 5F 61 7B 73 56 71 ; faw..:jD{V_a{sVq
000005c0h: 48 49 79 00 66 58 43 5D 56 02 5F 76 40 01 49 57 ; HIy.fXC]V._v@.IW
000005d0h: 09 7E 57 49 03 05 46 08 55 7B 03 50 5A 77 41 5C ; .~WI..F.U{.PZwA\
000005e0h: 79 63 1F 5C 02 6A 40 61 79 62 42 40 79 72 69 7F ; yc.\.j@aybB@yri.
000005f0h: 48 63 51 53 65 5F 3A 47 56 60 42 7F 05 50 56 59 ; HcQSe_:GV`B..PVY
00000600h: 04 71 60 1F 5E 71 69 75 5A 5A 5D 06 77 77 52 41 ; .q`.^qiuZZ].wwRA
00000610h: 01 72 05 40 02 77 72 4B 48 68 5C 71 7B 44 7C 40 ; .r.@.wrKHh\q{D|@
00000620h: 54 55 71 63 1F 05 40 67 41 45 42 1E 7D 56 73 7F ; TUqc..@gAEB.}Vs.
00000630h: 73 74 06 56 55 02 45 3B 53 09 76 03 06 5C 41 55 ; st.VU.E;S.v..\AU
00000640h: 75 1B 4A 66 44 59 7B 61 5F 5D 5B 79 5E 40 5B 58 ; u.JfDY{a_][y^@[X
00000650h: 1B 01 40 59 4A 62 07 42 54 54 02 65 59 5C 51 5F ; ..@YJb.BTT.eY\Q_
00000660h: 76 69 07 4A 62 61 5F 66 6B 79 52 41 3B 1D 1D 1D ; vi.Jba_fkyRA;...
00000670h: 1D 1D 75 7E 74 10 62 62 71 11 60 63 78 67 71 65 ; ..u~t.bbq.`cxgqe
00000680h: 75 10 7B 75 69 1D 1D 1C 1C 1D                   ; u.{ui.....

比较明显的就是flag.encprivatekey.bin对应密文和加密密钥,要想办法进行解密。
尝试用歌谱中每个音符对应的频率值对密钥进行解密但好像没有办法。

观察私钥文件中开头和结尾的内容,我们注意到密钥以 1d 1d 1d 1d 1d - 1d 1d 1c 1d 1d 开头并以 1d 1d 1d 1d 1d - 1d 1d 1c 1c 1d结尾。回忆普通私钥开头格式 -----BEGIN RSA PRIVATE KEY-----,与之有很高相似度。另外经过比对发现1d之间的字节数与BEGIN RSA PRIVATE KEY一致。

把加密过的密钥头和常见密钥头异或一下,得到一个串0000000101011101000000011000100

大概可以看出七个0是分隔符的情况下,第一个有效数据是 101011101 转化为十进制是 349,查一下C大调音符频率值

C - do - 261.6HZ
D - re - 293.6HZ
E - mi - 329.6HZ
F - fa - 349.2HZ
G - sol- 392HZ
A - la - 440HZ
B - si - 493.8HZ

这正是乐谱中第一个音符F的频率。

可以利用这个规律反解一下密钥。

from Crypto.Util import strxor
def xor(a,b):
    return strxor.strxor(a,b)
begin_c = b'\x1D\x1D\x1D\x1D\x1D\x72\x75\x76\x79\x7F\x10\x63\x62\x70\x10\x61\x62\x79\x66\x71\x64\x75\x10\x7A\x74\x69\x1D\x1D\x1C\x1D\x1D'
end_c = b'\x1D\x1D\x1D\x1D\x1D\x75\x7E\x74\x10\x62\x62\x71\x11\x60\x63\x78\x67\x71\x65\x75\x10\x7B\x75\x69\x1D\x1D\x1C\x1C\x1D'
begin_p = b'-----BEGIN RSA PRIVATE KEY-----'
end_p = b'-----END RSA PRIVATE KEY-----'
print(xor(begin_c, begin_p))
#print(xor(end_c, end_p))
def note2bin(freq):
    return format(freq, '016b')
def repeat(s, wanted):
    return (s * (wanted//len(s) + 1))[:wanted]
pk = open("privatekey.bin", "rb").read()
keystream = ""
notes = [349,392,440,349,349,392,440,349,440,466,523,440,466,523,523,587,523,466,440,349,523,587,523,466,440,349,349,262,349,349,262,349]
for n in notes:
    keystream += note2bin(n)
keystream = repeat(keystream, len(pk)).encode()
key = xor(pk, keystream)
with open("privatekey.pem", "w") as f:
    f.write(key.decode())

使用简单解密命令。

$ base64 -d flag.enc > flag.bin
$ openssl rsautl -decrypt -inkey privatekey.pem -in flag.bin -out decrypted.txt -raw

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/108818.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

postgres 源码解析46 可见性映射表VM

简介 Postgres 为实现多版本并发控制技术,当事务删除或者更新元组时,并非从物理上进行删除,而是将其进行逻辑删除[具体实现通过设置元组头信息xmax/infomask等标志位信息],随着业务的累增,表会越来越膨胀,对于执行计划…

【QScrollBar | QSlider | QDial | QProgressBar | QLCDNumber】

【QScrollBar | QSlider | QDial | QProgressBar | QLCDNumber】【1】UI设计界面【QScrollBar | QSlider 函数学习】【2】setMinimum | setMaximum【3】setSingleStep【4】setPageStep【5】setValue【6】setSliderPosition【7】setTracking【8】setOrientation【9】setInverted…

C++ :类和对象:文件操作

前言&#xff1a; 程序运行时产生的数据都属于临时数据&#xff0c;程序一旦运行结束&#xff0c;数据都会被释放。通过文件可以 将数据持久化&#xff0c;C 中对文件操作需要包含头文件 <fstream>。 文件类型分为两种&#xff1a; 1&#xff1a;文本文件&#xff1a;文件…

历时9个月重构iNeuOS工业互联网操作系统,打造工业领域的“Office”

目 录 1. 概述... 1 2. 整体介绍... 2 3. 主要功能简介... 5 1. 概述 历时9个月的时间&#xff0c;对iNeuOS工业互联网操作系统进行全面重构&#xff0c;发布内部测试版本。重构的主要目的&#xff1a;工程化的框架优化&#xff0c;更好的聚焦工业领…

35.前端笔记-CSS3-3D转换

1、3D的特点 进大远小物体后面遮挡不可见 x:右为正 y:下为正 z:屏幕外是正&#xff0c;往里是负 3D移动之translate transform:translateX(100px);//仅仅是x轴移动。px或百分比 transform:translateY(100px);//仅仅是y轴移动&#xff0c;px或百分比 transform:translateZ(1…

33页企业内容管理与应用建设整体解决方案

当前企业在采购管理上面临的主要问题总体应对思路利用数字化技术&#xff0c;推动企业采购管理效能与职能升级 基于互联网技术架构推出数字化采购管理平台&#xff0c;帮助企业构建采购过程与供应商管理的两大流程闭环&#xff0c;实现采购过程的在线化协同&#xff0c;进而提升…

华为云大数据BI解决方案,助力企业实现数字化转型

2022年1月12日&#xff0c;国务院印发了《“十四五”数字经济发展规划》&#xff0c;规划明确提出到2025年&#xff0c;数字经济核心产业增加值占国内生产总值比重达到10%。这一规划的出台&#xff0c;充分释放出加快发展数字经济的明确信号&#xff0c;为各行业进行数字化转型…

使用FCN实现语义分割

来源&#xff1a;投稿 作者&#xff1a;王浩 编辑&#xff1a;学姐 这篇文章的核心内容是讲解如何使用FCN实现图像的语义分割。 在文章的开始&#xff0c;我们讲了一些FCN的结构和优缺点。然后&#xff0c;讲解了如何读取数据集。接下来&#xff0c;告诉大家如何实现训练。最后…

Redis跳跃表(SkipList)

什么是跳跃表 跳跃表&#xff08;skiplist&#xff09;是一种有序且随机化的数据结构&#xff0c;它通过在每个节点中维持多个指向其他节点的指针&#xff0c;从而达到快速访问节点的目的。 跳跃表的用处 有序集合(zset)的底层可以采用数组、链表、平衡树等结果来实现, 但是他…

仪表盘读数识别检测 Python+yolov5

仪表读数识别检测利用Pythonyolov5深度学习对仪表盘刻度数进行实时识别检测读取。Python是一种由Guido van Rossum开发的通用编程语言&#xff0c;它很快就变得非常流行&#xff0c;主要是因为它的简单性和代码可读性。它使程序员能够用更少的代码行表达思想&#xff0c;而不会…

艾美捷硫代巴比妥酸反应物质 (TBARS)检测试剂盒试剂准备

艾美捷TBARS&#xff08;TCA法&#xff09;测定试剂盒提供了一种简单、可重复和标准化的工具&#xff0c;用于测定血浆、血清、尿液、组织匀浆和细胞裂解物中的脂质过氧化。在高温&#xff08;90-100C&#xff09;和酸性条件下&#xff0c;通过MDA和TBA反应形成的MDA-TBA加合物…

kali渗透测试系列---信息收集

kali 渗透测试系列 文章目录kali 渗透测试系列信息收集信息收集 信息收集阶段可以说是在整个渗透测试或者攻击很重要的阶段&#xff0c;毕竟知己知彼才能百战百胜&#xff0c;否则从目标主机使用的平台到数据库的使用再到 web 应用开发的语言等等的种类多如繁星我们一个个的尝…

Opencv(C++)笔记--直方图均衡化、直方图计算

目录 1--直方图均衡化 2--直方图计算 1--直方图均衡化 ① 简述&#xff1a; 对图片的对比度进行调整&#xff0c;输入为灰度图像&#xff0c;对亮度进行归一化处理&#xff0c;提高灰度图的对比度&#xff1b; ② Opencv API&#xff1a; cv::equalizeHist(gray, dst); ③…

Unprojecting_text_with_ellipses过程分析

文章目录一、单应性1. 图片实例2. 数学表达式二、算法思路1. 算法流程2. 透视失真具体解决方案3. 图片旋转具体解决方案4. 图片文字倾斜具体解决方案三、实际处理过程四、算法问题五、OCR识别原文链接 https://mzucker.github.io/2016/10/11/unprojecting-text-with-ellipses.h…

ListView的基本创建方式

ListView的基本创建方式 1.ListView 主要介绍了采用标签创建以及ArrayAdapter适配器以及采用继承ListActivity的方式创建列表项 1.简介 是一个列表控件&#xff0c;以列表的形式展示具体内容&#xff0c;可以给各行设置事件监听器ListView中View负责显示和更新&#xff0c;数据…

最小生成树

文章目录基本原理Kruskal算法Prim算法基本原理 连通图中的每一棵生成树&#xff0c;都是原图的一个极大无环子图&#xff0c;即&#xff1a;从其中删去任何一条边&#xff0c;生成树就不在连通&#xff1b;反之&#xff0c;在其中引入任何一条新边&#xff0c;都会形成一条回路…

二叉树9:二叉树的最大深度

主要是我自己刷题的一些记录过程。如果有错可以指出哦&#xff0c;大家一起进步。 转载代码随想录 原文链接&#xff1a; 代码随想录 leetcode链接&#xff1a; 104. 二叉树的最大深度 559.n叉树的最大深度 104.二叉树的最大深度 题目&#xff1a; 给定一个二叉树&#xff0…

校招面试真题 | 你的期望薪资是多少?为什么

很多人去面试的时候&#xff0c;就像打游戏&#xff0c;过五关斩六将&#xff0c;终于到最后一关了&#xff0c;但是谈薪资的难度堪比打游戏中搞定终级 boss 的难度&#xff0c;真的是太「南」了&#xff0c;好多人都是因为这个问题让自己五味杂陈呀。报高了怕好 offer 失之交臂…

Ubuntu: Docker安装与操作

在进行docker安装前&#xff0c;我们首先得有以下工具&#xff1a;xshell,FileZilla Client Xshell下载安装教程 FileZilla Client下载安装教程 如果你的Ubuntu是纯净的(也就是说刚下好并且刚用虚拟机装好的)&#xff0c;你得先 打开终端&#xff08;CtrlAltT&#xff09; 一…

远程连接服务器(运用密钥)连接winscp/vscode/mobaxterm

1.连接ssh 先检查自己是否登上校园VPN校园VPN导航页 (xjtu.edu.cn) sslvpn 进入cmd&#xff08;黑框框&#xff09; 输入&#xff1a; &#xff08;1&#xff09; ssh &#xff08;用户名&#xff09;&#xff08;IP名&#xff09; -p &#xff08;端口如22、2022&#x…