日韩性视频-久久久蜜桃-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级片 | 欧美性生交xxxxx久久久 | 超碰www | 亚洲精品中文字幕在线 | 欧美丝袜一区二区三区 | 黄色自拍网站 | 综合av在线| 成人a√ | free性满足hd国产精品久 | 婷婷色一区二区三区 | 黄色爱爱视频 | 五月天社区 | 啪啪免费网址 | 日韩成人专区 | 亚洲视频综合网 | 久久久久久久久久久综合 | 国产黄色精品 | 在线视频一二区 | 久久久黄色片 | 97超碰免费观看 | 男女日批网站 | 国产专区在线 | 女人17片毛片60分钟 | 性色av一区二区三区免费 | 中文在线a在线 | 黄色三级在线观看 | 国产人妻久久精品一区二区三区 | 天堂在线 | 午夜国产| 国产一区二区三区在线观看 | 97在线精品视频 | 六月色| 日韩av手机在线观看 | 亚洲福利小视频 | 玖操| 激情视频91 | 牛牛av| 成人综合网站 | 夏目彩春娇喘呻吟高潮迭起 | 久久久香蕉 | 午夜日韩av | 国产美女永久免费无遮挡 | 久久伊人婷婷 | 日韩色图视频 | 男ji大巴进入女人视频 | 五月激情网站 | 黄色国产小视频 | 久久狠| 日本全黄裸体片 | 色视频国产 | a久久久久 | 国产精品电影网 | 调教亲女小嫩苞h文小说 | 香蕉久久一区二区三区 | 日韩不卡av | 天堂а√在线中文在线 | 亚洲精品综合 | 五月在线视频 | 蜜桃视频在线播放 | 男女靠逼视频 | 金8天国av| 福利电影一区 | 98久久| 激情综合网五月婷婷 | 天天摸天天舔 | a毛片视频 | 尤物视频网站在线观看 | 国产精品久久久久国产a级 国产一区二区在线播放 | 久草免费新视频 | 青青草原综合久久大伊人精品 | 国产精品88 | 99艹| 一本色道久久综合亚洲二区三区 | 欧美午夜精品一区二区三区电影 | 在线黄色免费网站 | 婷婷丁香六月天 | 久久成人毛片 | 魔女鞋交玉足榨精调教 | 黄色一级视频在线观看 | 日韩性xx | 韩国精品在线观看 | 国产美女无遮挡网站 | 啪啪免费小视频 | 少妇太紧太爽又黄又硬又爽 | zzjizzji亚洲日本少妇 | 成年人福利网站 | 日韩欧美在线免费观看 | 日韩成人免费视频 | 国产精品videossex国产高清 | 亚洲大尺度av| 午夜肉伦伦影院 | 成人免费大片黄在线播放 | 久久久久99人妻一区二区三区 | 欧美粉嫩videosex极品 | 免费黄色的网站 | 久久视频在线看 | 国产亚洲欧美精品久久久久久 |