-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdes_test.go
58 lines (51 loc) · 13.7 KB
/
des_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package godes
import (
"testing"
"strings"
)
var keys []string = []string{
"this is a 24 byte key !!",
"8bytekey",
"IZS4l0RqPga6KhDeCsQirYA35UO7fxJujom2c8W9pnFkHMNLBGvyETdX1wtbzV",
"0j5dm29VA8GLuMdg1h5UBrXnn5GyL8Y9",
"XWRssss#@#$@#sdsssdf@#!@#!@#",
"!@#!@#!@#!@#sdsssfsdfsasdfdfs",
"{#T9R3FRq59]kQV|xNQt;6wqr'&`g3zc",
"5^N~1D|xa-YieUWONFxm|Hi&",
}
var msgs []string = []string{
"却说谯周官居太史,颇明天文;见孔明又欲出师,乃奏后主曰:“臣今职掌司天台,但有祸福,不可不奏:近有群鸟数万,自南飞来,投于汉水而死,此不祥之兆;臣又观天象,见奎星躔于太白之分,盛气在北,不利伐魏;又成都人民,皆闻柏树夜哭:有此数般灾异,丞相只宜谨守,不可妄动。”孔明曰:“吾受先帝托孤之重,当竭力讨贼,岂可以虚妄之灾氛,而废国家大事耶!”遂命有司设太牢祭于昭烈之庙,涕泣拜告曰:“臣亮五出祁山,未得寸土,负罪非轻!今臣复统全师,再出祁山,誓竭力尽心,剿灭汉贼,恢复中原,鞠躬尽瘁,死而后已!”祭毕,拜辞后主,星夜至汉中,聚集诸将,商议出师。忽报关兴病亡。孔明放声大哭,昏倒于地,半晌方苏。众将再三劝解,孔明叹曰:“可怜忠义之人,天不与以寿”我今番出师,又少一员大将也!”后人有诗叹曰:“生死人常理,蜉蝣一样空。但存忠孝节,何必寿乔松。”",
"却说孔明复出祁山,下五个大寨,按左、右、中、前、后;自斜谷直至剑阁,一连又下十四个大寨,分屯军马,以为久计。每日令人巡哨。忽报郭淮、孙礼领陇西之兵,于北原下寨。孔明谓诸将曰:“魏兵于北原安营者,惧吾取此路,阻绝陇道也。吾今虚攻北原,却暗取渭滨。令人紥木筏百余只,上载草把,选惯熟水手五千人驾之。我夤夜只攻北原,司马懿必引兵来救。彼若少败,我把后军先渡过岸去,然后把前军下于筏中。休要上岸,顺水取浮桥放火烧断,以攻其后。吾自引一军去取前营之门。若得渭水之南,则进兵不难矣。”诸将遵令而行。早有巡哨军飞报司马懿。懿唤诸将议曰:“孔明如此设施,其中有计:彼以取北原为名,顺水来烧浮桥,乱吾后,却攻吾前也。”即传令与夏侯霸、夏侯威曰:“若听得北原发喊,便提兵于渭水南山之中,待蜀兵至击之。”又令张虎、乐綝,引二千弓弩手伏于渭水浮桥北岸:“若蜀兵乘木筏顺水而来,可一齐射之,休令近桥。”又传令郭淮、孙礼曰:“孔明来北原暗渡渭水,汝新立之营,人马不多,可尽伏于半路。若蜀兵于午后渡水,黄昏时分,必来攻汝。汝诈败而走,蜀兵必追。汝等皆以弓弩射之。吾水陆并进。若蜀兵大至,只看吾指挥而击之。”各处下令已毕,又令二子司马师、司马昭,引兵救应前营。懿自引一军救北原。",
"却说孔明令魏延、马岱引兵渡渭水攻北原;令吴班、吴懿引木筏兵去烧浮桥;令王平、张嶷为前队,姜维、马忠为中队,廖化、张翼为后队:兵分三路,去攻渭水旱营。是日午时,人马离大寨,尽渡渭水,列成阵势,缓缓而行。却说魏延、马岱将近北原,天色已昏。孙礼哨见,便弃营而走。魏延知有准备,急退军时,四下喊声大震:左有司马懿,右有郭淮,两路兵杀来。魏延、马岱奋力杀出,蜀兵多半落于水中,余众奔逃无路。幸得吴懿兵杀来,救了败兵过岸拒住。吴班分一半兵撑筏顺水来烧浮桥,却被张虎、乐綝在岸上乱箭射住。吴班中箭,落水而死。余军跳水逃命,木筏尽被魏兵夺去。此时王平、张嶷,不知北原兵败,直奔到魏营,已有二更天气,只听得喊声四起。王平谓张嶷曰:“军马攻打北原,未知胜负。渭南之寨,现在面前,如何不见一个魏兵?莫非司马懿知道了,先作准备也?我等且看浮桥火起,方可进兵。”二人勒住军马,忽背后一骑马来报,说:“丞相教军马急回。北原兵、浮桥兵,俱失了。”王平、张嶷大惊,急退军时,却被魏兵抄在背后,一声炮响,一齐杀来,火光冲天。王平、张嶷引兵相迎,两军混战一场。平、嶷二人奋力杀出,蜀兵折伤大半。孔明回到祁山大寨,收聚败兵,约折了万余人,心中忧闷。忽报费祎自成都来见丞相。孔明请入。费祎礼毕,孔明曰:“吾有一书,正欲烦公去东吴投递,不知肯去否?”祎曰:“丞相之命,岂敢推辞?”孔明即修书付费祎去了。祎持书径到建业,入见吴主孙权,呈上孔明之书。权拆视之,书略曰:“汉室不幸,王纲失纪,曹贼篡逆,蔓延及今。亮受昭烈皇帝寄托之重,敢不竭力尽忠:今大兵已会于祁山,狂寇将亡于渭水。伏望陛下念同盟之义,命将北征,共取中原,同分天下。书不尽言,万希圣听!”权览毕,大喜,乃谓费祎曰:“朕久欲兴兵,未得会合孔明。今既有书到,即日朕自亲征,入居巢门,取魏新城;再令陆逊、诸葛瑾等屯兵于江夏、沔口取襄阳;孙韶、张承等出兵广陵取淮阳等处:三处一齐进军,共三十万,克日兴师。”费祎拜谢曰:“诚如此,则中原不日自破矣!”权设宴款待费祎。饮宴间,权问曰:“丞相军前,用谁当先破敌?”祎曰:“魏延为首。”权笑曰:“此人勇有余。而心不正。若一朝无孔明,彼必为祸。孔明岂未知耶?”祎曰:“陛下之言极当!臣今归去,即当以此言告孔明。”遂拜辞孙权,回到祁山,见了孔明,具言吴主起大兵三十万,御驾亲征,兵分三路而进。孔明又问曰:“吴主别有所言否?”费祎将论魏延之语告之。孔明叹曰:“真聪明之主也!吾非不知此人。为惜其勇,故用之耳。”祎曰:“丞相早宜区处。”孔明曰:“吾自有法。”祎辞别孔明,自回成都。",
"忽一日,长史杨仪入告曰:“即今粮米皆在剑阁,人夫牛马,搬运不便,如之奈何?”孔明笑曰:“吾已运谋多时也。前者所积木料,并西川收买下的大木,教人制造‘木牛’‘流马’,搬运粮米,甚是便利。牛马皆不水食,可以昼夜转运不绝也众皆惊曰:“自古及今,未闻有木牛流马之事。不知丞相有何妙法,造此奇物?孔明曰:“吾已令人依法制造,尚未完备。吾今先将造木牛流马之法,尺寸方圆,长短阔狭,开写明白,汝等视之。”众大喜。孔明即手书一纸,付众观看。众将环绕而视。造木牛之法云:“方腹曲头,一脚四足;头入领中,舌着于腹。载多而行少:独行者数十里,群行者二十里。曲者为牛头,双者为牛脚,横者为牛领,转者为牛足,覆者为牛背,方者为牛腹,垂者为牛舌,曲者为牛肋,刻者为牛齿,立者为牛角,细者为牛鞅,摄者为牛鞦轴。牛仰双辕,人行六尺,牛行四步。每牛载十人所食一月之粮,人不大劳,牛不饮食。”造流马之法云:“肋长三尺五寸,广三寸,厚二寸二分:左右同。前轴孔分墨去头四寸,径中二寸。前脚孔分墨二寸,去前轴孔四寸五分,广一寸。前杠孔去前脚孔分墨二寸七分,孔长二寸,广一寸。后轴孔去前杠分墨一尺五分,大小与前同。后脚孔分墨去后轴孔三寸五分,大小与前同。后杠孔去后脚孔分墨二寸七分,后载克去后杠孔分墨四寸五分。前杠长一尺八寸,广二寸,厚一寸五分。后杠与等。板方囊二枚,厚八分,长二尺七寸,高一尺六寸五分,广一尺六寸:每枚受米二斛三斗。从上杠孔去肋下七寸:前后同。上杠孔去下杠孔分墨一尺三寸,孔长一寸五分,广七分:八孔同。前后四脚广二寸,厚一寸五分。形制如象,靬长四寸,径面四寸三分。孔径中三脚杠,长二尺一寸,广一寸五分,厚一寸四分,同杠耳。”众将看了一遍,皆拜伏曰:“丞相真神人也!”",
"君不见黄河之水天上来,奔流到海不复回。君不见高堂明镜悲白发,朝如青丝暮成雪。人生得意须尽欢,莫使金樽空对月。天生我材必有用,千金散尽还复来。烹羊宰牛且为乐,会须一饮三百杯。岑夫子,丹丘生,将进酒,杯莫停。与君歌一曲,请君为我侧耳听。钟鼓馔玉不足贵,但愿长醉不复醒。古来圣贤皆寂寞,惟有饮者留其名。陈王昔时宴平乐,斗酒十千恣欢谑。主人何为言少钱,径须沽取对君酌。五花马,千金裘,呼儿将出换美酒,与尔同销万古愁。",
"大道如青天,我独不得出。羞逐长安社中儿,赤鸡白狗赌梨栗。弹剑作歌奏苦声,曳裾王门不称情。淮阴市井笑韩信,汉朝公卿忌贾生。君不见昔时燕家重郭隗,拥篲折节无嫌猜。剧辛乐毅感恩分,输肝剖胆效英才。昭王白骨萦蔓草,谁人更扫黄金台?行路难,归去来!",
"驰书报入成都。后主刘禅遣使回贺,吴使薛珝答礼。珝自蜀中归,吴主孙休问蜀中近日作何举动。珝奏曰:“近日中常侍黄皓用事,公卿多阿附之。入其朝,不闻直言;经其野,民有菜色。所谓‘燕雀处堂,不知大厦之将焚’者也。”休叹曰:“若诸葛武侯在时,何至如此乎!”于是又写国书,教人赍入成都,说司马昭不日篡魏,必将侵吴、蜀以示威,彼此各宜准备。姜维听得此信,忻然上表,再议出师伐魏。时蜀汉景耀元年冬,大将军姜维以廖化、张翼为先锋,王含、蒋斌为左军,蒋舒,傅佥为右军,胡济为合后,维与夏侯霸总中军,共起蜀兵二十万,拜辞后主,径到汉中。与夏侯霸商议,当先攻取何地。霸曰:“祁山乃用武之地,可以进兵,故丞相昔日六出祁山,因他处不可出也。”维从其言,遂令三军并望祁山进发,至谷口下寨。时邓艾正在祁山寨中,整点陇右之兵。忽流星马报到,说蜀兵现下三寨于谷口。艾听知,遂登高看了,回寨升帐,大喜曰:“不出吾之所料也!”原来邓艾先度了地脉,故留蜀兵下寨之地;地中自祁山寨直至蜀寨,早挖了地道,待蜀兵至时,于中取事。此时姜维至谷口分作三寨,地道正在左寨之中,乃王含、蒋斌下寨之处。邓艾唤子邓忠,与师纂各引一万兵,为左右冲击;却唤副将郑伦,引五百掘子军,于当夜二更,径从地道直至左营,于帐后地下拥出。",
"次日,姜维尽拔九寨之兵,分布于祁山之前。司马望引兵离了渭南,径到祁山之前,出马与姜维答话。维曰:“汝请吾斗阵法,汝先布与吾看。”望布成了八卦。维笑曰:“此即吾所布八阵之法也,汝今盗袭,何足为奇!”望曰:“汝亦窃他人之法耳!”维曰:“此阵凡有几变?”望笑曰:“吾既能布,岂不会变?此阵有九九八十一变。”维笑曰:“汝试变来。”望入阵变了数番,复出阵曰:“汝识吾变否?”维笑曰:“吾阵法按周天三百六十五变。汝乃井底之蛙,安知玄奥乎!”望自知有此变法,实不曾学全,乃勉强折辩曰:“吾不信,汝试变来。”维曰:“汝教邓艾出来,吾当布与他看。”望曰:“邓将军自有良谋,不好阵法。”维大笑曰:“有何良谋!不过教汝赚吾在此布阵,他却引兵袭吾山后耳!”望大惊,恰欲进兵混战,被维以鞭梢一指,两翼兵先出,杀的那魏兵弃甲抛戈,各逃性命。却说邓艾催督先锋郑伦来袭山后。伦刚转过山角,忽然一声炮响,鼓角喧天,伏兵杀出:为首大将。乃廖化也。二人未及答话,两马交处,被廖化一刀,斩郑伦于马下。邓艾大惊,急勒兵退时,张翼引一军杀到。两下夹攻,魏兵大败。艾舍命突出,身被四箭。奔到渭南寨时,司马望亦到。二人商议退兵之策。望曰:“近日蜀主刘禅,宠幸中贵黄皓,日夜以酒色为乐。可用反间计召回姜维,此危可解。”艾问众谋士曰:“谁可入蜀交通黄皓?”言未毕,一人应声曰:“某愿往。”艾视之,乃襄阳党均也。艾大喜,即令党均赍金珠宝物,径到成都结连黄皓,布散流言,说姜维怨望天子,不久投魏。于是成都人人所说皆同。黄皓奏知后主,即遣人星夜宣姜维入朝。却说姜维连日搦战,邓艾坚守不出。维心中甚疑。忽使命至。诏维入朝。维不知何事,只得班师回朝。邓艾、司马望知姜维中计,遂拔渭南之兵,随后掩杀。正是:乐毅伐齐遭间阻,岳飞破敌被谗回。",
}
func TestDes(t *testing.T) {
for k, key := range keys {
if k >= len(msgs) {
t.Error("keys length not match msgs length")
}
msg := msgs[k]
enret, err := Des(key, msg, 1, 0, "", 0)
if err != nil {
t.Errorf("%v", err)
} else {
deret, err := Des(key, enret, 0, 0, "", 0)
if err != nil {
t.Errorf("%v", err)
}
ret := ""
for _, l := range []byte(deret) {
if l != 0 {
ret += string([]byte{l})
}
}
if !strings.EqualFold(msg, ret) {
t.Error("decrypt result not match source string")
}
}
}
}