Тема: HTA: вычисление CRC32 строки или файла
<html>
<head>
<meta http-equiv=content-type content="text-html; charset=windows-1251">
<meta http-equiv=MSThemeCompatible content=yes>
<hta:application
id=HTAApp
applicationName=CRC32_Calculator
icon=keymgr.dll
maximizeButton=no
innerBorder=no
scroll=no
selection=no
contextMenu=no
singleinstance=yes
version=1.0
author=mozers™
email=mozers@mail.ru
icq=256106175
>
<style type="text/css">
body, table {background-color:threedface; overflow:hidden; margin:2px;}
body, input, table, legend {font-family:MS Sans Serif; font-size:6pt;}
legend, label {color:highlight;}
legend {font-weight:bold;}
</style>
<script language="VBScript">
Function vbASCII(s)
vbASCII = Asc(s)
End Function
Function vbHex(i)
vbHex = Hex(i)
End Function
</script>
<script language="JavaScript" type="text/javascript">
window.resizeTo(400, 128);
document.title = HTAApp.applicationName.replace(/_/g,' ') + ' v.' + HTAApp.version;
var crcTable = [];
function crcTableCalc() {
for(var i=0; i<256; i++){
var c = i;
for(var j=0; j<8; j++) c=(c&1) ? 0xEDB88320^(c>>>1) : c>>>1;
crcTable[i] = c;
}
}
function crc32 (str) {
var c = 0xFFFFFFFF;
for(var i=0; i<str.length; i++) c=crcTable[(c^vbASCII(str.charAt(i)))&0xFF]^(c>>>8);
return c^0xFFFFFFFF;
}
function ReadBinaryFile(filename) {
var Stream = new ActiveXObject("ADODB.Stream");
with (Stream) {
type=2;
charset='ISO-8859-1';
open();
loadFromFile(filename);
var content=readText();
close();
}
return content;
}
function GetCRCfile(){
var fname = iFile.value;
var bin_str=ReadBinaryFile(fname);
var result = crc32(bin_str);
iDec.value = result;
iHex.value = vbHex(result);
}
function GetCRCtext(){
var str=iText.value;
var result = crc32(str);
iDec.value = result;
iHex.value = vbHex(result);
}
crcTableCalc();
</script>
</head>
<body>
<table style="width:100%;" cellpadding="0" cellspacing="2">
<tr><td>Text:
<td style="width:100%;"><input id="iText" style="width:100%;" type="text">
<td><input type=button onClick="GetCRCtext()" value="Calculate" hidefocus>
<tr><td>File:
<td style="width:100%;"><input id="iFile" style="width:100%;" type="file">
<td><input type=button onClick="GetCRCfile()" value="Calculate" hidefocus>
<tr>
<td colspan="3">
<fieldset><legend> CRC32 </legend>
DEC: <input id="iDec" style="width:150px;" type="text">
HEX: <input id="iHex" style="width:150px;" type="text">
</fieldset>
</table>
</body>
</html>
Автор идеи — mozers.
Основано на: Koders Code Search: crc32.js - JavaScript