По предложению mozers-а, решил попробовать свои силы в создании прямой и обратной функции кодирования. Идею основы взял у JSman-а, за что спасибо ему огромное ).
Создал функции:
Кодирование строки в HEX строку и обратно.
strToHex - String -> Hex String
hexToStr - Hex String -> String
Преобразование строки в массив байт и обратно.
strToBin - String -> Byte()
binToStr - Byte() -> String
Кодирование строки в base64 и обратно.
strToBase64 - String -> base64
base64ToStr - base64 -> String
Зачем всё это делал ? Было приятно отказаться напрочь от CreateObject
К сожалению пришлось пожертвовать указанием кодировки при кодировании.
<html>
<head>
<title>encoder / decoder</title>
<meta charset="windows-1251">
<style>
*{font-family:Tahoma;font-size:14px;}
</style>
</head>
<body>
<table width=100% height=100%>
<tr>
<td colspan=4>
Кодировщик
<select id="selEncoder">
<option value="0">base64</option>
<option value="1">hex</option>
</select>
<hr>
</td>
</tr>
<tr>
<td align=left>Исходные данные</td>
<td align=right><button id="btnEncode">Encode ></button></td>
<td align=left><button id="btnDecode">< Decode</button></td>
<td align=right>Закодированные данные</td>
</tr>
<tr>
<td colspan=2 height=100% ><textarea id="txtDecoded" style="width:100%;height:100%;"></textarea></td>
<td colspan=2><textarea id="txtEncoded" style="width:100%;height:100%;"></textarea></td>
</tr>
</table>
<script language=VBScript>
Option Explicit
Sub btnEncode_onclick()
On Error Resume Next
Select Case selEncoder.value
Case "0"
txtEncoded.value = strToBase64(txtDecoded.value)
Case "1"
txtEncoded.value = strToHex(txtDecoded.value)
End Select
if Err.Number <> 0 Then MsgBox Err.Description, vbCritical, document.title
End Sub
Sub btnDecode_onclick()
On Error Resume Next
Select Case selEncoder.value
Case "0"
txtDecoded.value = Base64ToStr(txtEncoded.value)
Case "1"
txtDecoded.value = hexToStr(txtEncoded.value)
End Select
if Err.Number <> 0 Then MsgBox Err.Description, vbCritical, document.title
End Sub
'Кодирование String в base64
Function strTobase64(data)
With document.createElement("xml").createElement("t")
.dataType = "bin.base64"
.nodeTypedValue = strToBin(data)
strTobase64 = .text
End With
End Function
'Декодирование base64 в String
Function base64ToStr(data)
With document.createElement("xml").createElement("t")
.dataType = "bin.base64"
.text = data
base64ToStr = binToStr(.nodeTypedValue)
End With
End Function
'Конвертация String в Byte()
Function strToBin(text)
With document.createElement("xml").createElement("t")
.dataType = "bin.hex"
.text = strTohex(text)
strToBin = .nodeTypedValue
End With
End Function
'Конвертация Byte() в String
Function binToStr(data)
With document.createElement("xml").createElement("t")
.dataType = "bin.hex"
.nodeTypedValue = data
binToStr = hexToStr(.text)
End With
End Function
'Кодирование строки в HEX
Function strTohex(text)
Dim tmp, i
For i = 1 To Len(text)
tmp = tmp & Right("0" & Hex(Asc(Mid(text, i, 1))), 2)
Next
strTohex = tmp
End Function
'Декодирование строки из HEX
Function hexToStr(hexStr)
Dim tmp, i
For i = 1 To Len(hexStr) Step 2
tmp = tmp & Chr("&H" & Mid(hexStr, i, 2))
Next
hexToStr = tmp
End Function
</script>
</body>
</html>
Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !