Using English frequency analysis (but you actually need to know the language source), here is a javascript version:
// English letter frequency a-z// source: https://en.wikipedia.org/wiki/Letter_frequencyconstENGLISH_FREQUENCIES=newFloat32Array([0.0816,0.0149,0.0278,0.0425,0.1270,0.0222,0.0201,0.0609,0.0696,0.0015,0.0077,0.0402,0.0240,0.0674,0.0750,0.0192,0.0009,0.0598,0.0632,0.0905,0.0275,0.0097,0.0236,0.0015,0.0197,0.0007,].map(v=>Math.log(v)/Math.LN2));// Here we are !constdecipher=str=>Array.from({length:26},(_,key)=>{// Rotate textconsttext=str.toLowerCase().replace(/[a-z]/g,$0=>String.fromCharCode(97+(($0.charCodeAt(0)-97+key)%26)));// Get entropy information based on Shannon// https://en.wikipedia.org/wiki/Entropy_(information_theory)constentropy=text.match(/[a-z]/g).map(c=>ENGLISH_FREQUENCIES[c.charCodeAt(0)-97]).reduce((sum,frequency,_,arr)=>sum-frequency/arr.length,0);return{key,text,entropy};}).sort((a,b)=>a.entropy-b.entropy);// Sort results
You'll get results sort by entropy score:
console.log(decipher("dwwdfn iurp wkh zrrgv dw gdzq").map(({key,text,entropy})=>`${entropy.toFixed(3)} - ${text} (${key})`).join("\n"));// 4.227 - attack from the woods at dawn (23)// 4.936 - piiprz ugdb iwt lddsh pi splc (12)// 4.974 - ohhoqy tfca hvs kccrg oh rokb (11)// 5.098 - tmmtvd ykhf max phhwl tm wtpg (16)
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Using English frequency analysis (but you actually need to know the language source), here is a javascript version:
You'll get results sort by entropy score: