日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

用javascript自制ctf词频分析工具

發(fā)布時間:2025/4/16 javascript 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用javascript自制ctf词频分析工具 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

不廢話,上代碼:

<!DOCTYPE html> <html> <head><title></title> </head> <body style="margin:0;width:100%;height:100%;"> <!--created by zengzhaosi--> <p style="background-color:deepskyblue;width:100%;height:50px;color:white;font-size:26px;margin:0;padding:0;text-align:center;line-height:50px;">詞頻分析器</p> <table style="border-collapse:collapse;width:100%;height:100%;"> <tr valign="top"> <td style="width:65%;"> <div>請輸入密文:<input type="button" value="全部轉(zhuǎn)大寫" onclick="upperCase()" style="margin:10px 30px;"/> <input type="button" value="全部轉(zhuǎn)小寫" onclick="lowerCase()" style="margin:10px 30px;"/> <input type="button" value="加載測試內(nèi)容" onclick="loadTest()" style="margin:10px 30px;"/></div> <textarea style="min-width:300px;min-height:150px;width:90%;" onchange="calc_letter_frequency()" onpropertychange="calc_letter_frequency()" oninput="calc_letter_frequency()" id="cipher"></textarea> <div>明文:</div><div style="min-width:300px;min-height:150px;width:90%;border:1px solid black;font-size:14px;" id="plain"></div> <input type="button" value="添加轉(zhuǎn)換條件" style="margin:10px 30px;" onclick="add_change()" /> <input type="button" value="轉(zhuǎn)換" style="margin:10px 50px;" onclick="change_cipher()" /> <div id="buttons"> </div> </td> <td style="width:20%;">當前詞頻<div id="current_letter_frequency"></div></td> <td style="width:15%;">一般英文詞頻<div id="english_letter_frequency"></div></td> </tr> </table> </body> <script type="text/javascript"> String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) { if (!RegExp.prototype.isPrototypeOf(reallyDo)) { return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi": "g")), replaceWith); } else { return this.replace(reallyDo, replaceWith); } } var plaincolor = "skyblue"; window.onload = function(){var str = "";var english_letter_frequency = [{"letter":"a","frequency":0.08167},{"letter":"b","frequency":0.01492},{"letter":"c","frequency":0.02782},{"letter":"d","frequency":0.04253},{"letter":"e","frequency":0.12702},{"letter":"f","frequency":0.02228},{"letter":"g","frequency":0.02015},{"letter":"h","frequency":0.06094},{"letter":"i","frequency":0.06966},{"letter":"j","frequency":0.00153},{"letter":"k","frequency":0.00772},{"letter":"l","frequency":0.04025},{"letter":"m","frequency":0.02406},{"letter":"n","frequency":0.06749},{"letter":"o","frequency":0.07507},{"letter":"p","frequency":0.01929},{"letter":"q","frequency":0.00095},{"letter":"r","frequency":0.05987},{"letter":"s","frequency":0.06327},{"letter":"t","frequency":0.09056},{"letter":"u","frequency":0.02758},{"letter":"v","frequency":0.00978},{"letter":"w","frequency":0.02360},{"letter":"x","frequency":0.00150},{"letter":"y","frequency":0.01974},{"letter":"z","frequency":0.00074}];function sortByFrequency(a,b){return b.frequency - a.frequency;}english_letter_frequency.sort(sortByFrequency);for(var i=0;i<english_letter_frequency.length;i++){str += '<span style="font-size:14px;background-color:'+(i%2?"white":"skyblue")+'">'+ english_letter_frequency[i].letter +',詞頻:' + english_letter_frequency[i].frequency + '</span><br>'}id("english_letter_frequency").innerHTML = str; } function id(x){ return document.getElementById(x);} function loadTest(){var str = `TW5650Y - 0TS UZ50S S0V LZW UZ50WKW 9505KL4G 1X WVMUSL510 S001M0UWV 910VSG S0 WFLW0K510 1X LZW54 WF5KL50Y 2S4L0W4KZ52 L1 50U14214SLW X5L0WKK S0V TSK7WLTS88 VWNW8129W0L 50 W8W9W0LS4G, 95VV8W S0V Z5YZ KUZ118K SU41KK UZ50S.LZW S001M0UW9W0L ESK 9SVW SL S K5Y050Y UW4W910G L1VSG TG 0TS UZ50S UW1 VSN5V KZ1W9S7W4 S0V FM LS1, V54WUL14 YW0W4S8 1X LZW 50LW40SL510S8 U112W4SL510 S0V WFUZS0YW VW2S4L9W0L 1X LZW 9505KL4G 1X WVMUSL510."EW S4W WFU5LWV L1 T41SVW0 1M4 2S4L0W4KZ52 E5LZ LZW 9505KL4G 1X WVMUSL510 L1 9S7W S 810Y-8SKL50Y 592SUL 10 LZW 85NWK 1X UZ50WKW KLMVW0LK LZ41MYZ S 6150L8G-VWK5Y0WV TSK7WLTS88 UM445UM8M9 S0V S E5VW 4S0YW 1X KUZ118 TSK7WLTS88 241Y4S9K," KS5V KZ1W9S7W4. "LZ5K U1995L9W0L 9S47K S01LZW4 958WKL10W 50 LZW 0TS'K G1MLZ S0V TSK7WLTS88 VWNW8129W0L WXX14LK 50 UZ50S."X8SY{YK182V9ZUL9STU5V}';`id("cipher").value = str; } function upperCase(){var str = id("cipher").value.toUpperCase();id("cipher").value = str;calc_letter_frequency(); } function lowerCase(){var str = id("cipher").value.toLowerCase();id("cipher").value = str;calc_letter_frequency(); } function calc_letter_frequency(x){var cipher = id("cipher").value.replace(/\s+/g,"");if(x){cipher = x;}var len = cipher.length;var counters = {};for(var i=0;i<len;i++){if(cipher[i] in counters){counters[cipher[i]] += 1}else{counters[cipher[i]] = 1} }var result = [];for(var i in counters){result.push({"char":i,"num":counters[i],"frequency":(counters[i]/len).toFixed(5),})}function sortByNum(a,b){return b.num - a.num;}result.sort(sortByNum);var current_letter_frequency = "";for(var i=0;i<result.length;i++){current_letter_frequency += '<span style="font-size:14px;background-color:'+(i%2?"white":"skyblue")+'">'+ result[i].char +',出現(xiàn)次數(shù):'+ result[i].num +',詞頻:'+result[i].frequency+'</span><br>'}id("current_letter_frequency").innerHTML = current_letter_frequency; } var add_counter = 0; function add_change(){var buttons = id("buttons");var span = document.createElement("span");span.innerHTML = '<span style="background-color:deepskyblue;padding:5px;margin:5px;" id="add'+add_counter+'" class="add">\<input type="input" style="width:20px;" id="from'+add_counter+'" class="from"/>轉(zhuǎn)為\<input type="input" style="width:20px;" id="to'+add_counter+'" class="to"/>\<input type="button" value="刪除" style="font-size:8px;margin:3px;" onclick="del_add('+add_counter+')"/></span>'buttons.appendChild(span);add_counter += 1; }function del_add(n){id("add"+n).remove(); }function change_cipher(){var adds = document.getElementsByClassName("add");if(adds.length){var cipher = id("cipher").value;var plain = "";var real_plain = "";var froms = document.getElementsByClassName("from");var tos = document.getElementsByClassName("to");for(var i=0;i<cipher.length;i++){var notchange = true;for(var j=0;j<froms.length;j++){if(cipher[i] == froms[j].value){plain += "<span style='background-color:"+plaincolor+"'>"+tos[j].value+"</span>";real_plain += tos[j].value;notchange = false;break;}}if(notchange){plain += cipher[i];real_plain += cipher[i];}}id("plain").innerHTML = plain;calc_letter_frequency(real_plain.replace(/\s+/g,""));} }</script> </html>

這個東西是之前為了對付CTF里面的一種詞頻分析題而寫的一個javascript小工具,通過添加條件將特定的數(shù)字或字母替換成正確的字符來對加密的文本進行破譯,最終得到正確的flag的一種題型。

我已經(jīng)將測試題目加到里面去了。用戶可以自行嘗試,還是蠻有意思的東西。?

總結(jié)

以上是生活随笔為你收集整理的用javascript自制ctf词频分析工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久精品在线观看 | 欧美美女一区二区三区 | 国产a∨精品一区二区三区仙踪林 | 国产高清免费在线观看 | 久久久久久久久久99 | 182tv午夜福利在线观看 | 精品无码一级毛片免费 | 夫妻性生活黄色片 | 秋霞在线视频观看 | 久久国产成人精品国产成人亚洲 | 亚洲欧美日韩专区 | 扶她futa粗大做到怀孕 | 国产老妇视频 | 精品人妻少妇嫩草av无码 | 香蕉视频在线网站 | 亚洲一区二区在线 | 日韩av女优在线观看 | 91精品国产一区二区 | 女教师痴汉调教hd中字 | 国产成人无码精品 | 老太太av | 日本精品在线视频 | 极度诱惑香港电影完整 | 一个色在线视频 | 日本一区二区三区电影在线观看 | 日韩美女视频在线观看 | 国产精品成人一区二区 | 黄色一级生活片 | 日韩激情成人 | 18av在线视频 | 人成免费| 久久88 | 两口子交换真实刺激高潮 | 亚洲精品a区 | 玖玖热在线视频 | 成人性生交免费看 | 在线免费观看污视频 | 丝袜老师让我了一夜网站 | 国产欧美精品在线观看 | 新红楼梦2005锦江版高清在线观看 | 久久字幕 | а√天堂中文在线资源8 | 日本视频网站在线观看 | 中文字幕 国产精品 | 第四色影音先锋 | 国产一区二区成人 | 国产精品日韩精品欧美精品 | www伊人| 两个女人互添下身爱爱 | 91综合视频 | 久久99精品国产麻豆婷婷洗澡 | 国产伦理在线观看 | 性综合网| 激情内射亚洲一区二区三区爱妻 | 69福利社区 | 日韩一区二区欧美 | 天天干天天舔 | 色婷婷色丁香 | 中文字幕第一页在线播放 | 亚洲国产成人精品激情在线 | 国产高清视频网站 | 涩里番在线观看 | 国产女人精品视频 | 色播在线视频 | 国产一区二区观看 | 寻找身体恐怖电影免费播放 | 波多野结衣一区二区三区在线观看 | 天天拍天天色 | 日本吃奶摸下激烈网站动漫 | 大伊人久久 | 国产精品美女久久 | 精产国产伦理一二三区 | 麻豆传媒一区二区三区 | 天堂av8在线 | 亚洲 小说区 图片区 都市 | 国产永久在线 | 欧美性受xxx黑人xyx性爽 | 18禁裸男晨勃露j毛免费观看 | 日韩欧美在线不卡 | 91久久婷婷 | av一本二本| 中文无码精品一区二区三区 | 色婷婷丁香 | 中文字幕日韩经典 | 日日日插插插 | 成人午夜在线观看视频 | 天天操中文字幕 | 欧美a图| 国产女大学生av | 男女做网站| 日韩精品免费一区二区 | 欧美xxx在线观看 | 国产自偷自拍视频 | 天天爽夜夜爽夜夜爽精品视频 | 日本一级一片免费视频 | 天天干夜夜欢 | 另类毛片 | 欧美五月婷婷 | 视频在线91 |