Эта функция работает с разными наборами символов в каждой цифре. Чтобы добавить еще одну цифру, добавьте римскую цифровую строку: 1 место, 5 место и следующее 1 место. Это хорошо, потому что вы обновляете его, зная только следующий набор символов.
function toRoman(n){
var d=0,o="",v,k="IVXLCDM".split("");
while(n!=0){
v=n%10,x=k[d],y=k[d+1],z=k[d+2];
o=["",x,x+x,x+x+x,x+y,y,y+x,y+x+x,y+x+x+x,x+z][v]+o;
n=(n-v)/10,d+=2;
}
return o
}
var out = "";
for (var i = 0; i < 100; i++) {
out += toRoman(i) + "\n";
}
document.getElementById("output").innerHTML = out;
<pre id="output"></pre>
SHA-512 является криптографической (односторонней) хэш-функцией, поэтому прямого способа ее декодирования не существует. Вся цель криптографической хеш-функции заключается в том, что вы не можете отменить ее.
Одна вещь, которую вы можете сделать, это стратегия грубой силы, где вы угадываете то, что было хешировано, затем хешируете его с той же функцией и смотрите, соответствует ли оно. Если хешированные данные не очень легко угадать, это может занять много времени.