|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Base64 en\de_code |
|
VBS/WSH/JS - Base64 en\de_code
|
Пользователь Сообщения: 50 |
vbs
Как реализовать? |
|
Отправлено: 10:03, 11-01-2016 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Примерно так: vbscript Base64 - Поиск в Google.
|
Отправлено: 10:24, 11-01-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 50
|
Профиль | Отправить PM | Цитировать Рабочее решение:
Function Base64Decode(ByVal base64String) Const Base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" Dim dataLength, sOut, groupBegin base64String = Replace(base64String, vbCrLf, "") base64String = Replace(base64String, vbTab, "") base64String = Replace(base64String, " ", "") dataLength = Len(base64String) If dataLength Mod 4 <> 0 Then Err.Raise 1, "Base64Decode", "Bad Base64 string." Exit Function End If For groupBegin = 1 To dataLength Step 4 Dim numDataBytes, CharCounter, thisChar, thisData, nGroup, pOut numDataBytes = 3 nGroup = 0 For CharCounter = 0 To 3 thisChar = Mid(base64String, groupBegin + CharCounter, 1) If thisChar = "=" Then numDataBytes = numDataBytes - 1 thisData = 0 Else thisData = InStr(1, Base64, thisChar, vbBinaryCompare) - 1 End If If thisData = -1 Then Err.Raise 2, "Base64Decode", "Bad character In Base64 string." Exit Function End If nGroup = 64 * nGroup + thisData Next nGroup = Hex(nGroup) nGroup = String(6 - Len(nGroup), "0") & nGroup pOut = Chr(CByte("&H" & Mid(nGroup, 1, 2))) + _ Chr(CByte("&H" & Mid(nGroup, 3, 2))) + _ Chr(CByte("&H" & Mid(nGroup, 5, 2))) sOut = sOut & Left(pOut, numDataBytes) Next Base64Decode = sOut End Function 'Переменная, присвоение значения, вывод в сообщение результата' dim result result = Base64Decode("MTIzNDU=") WScript.Echo(result) |
Последний раз редактировалось DarckSol, 11-01-2016 в 11:26. Отправлено: 11:16, 11-01-2016 | #3 |
Забанен Сообщения: 793
|
Некоторое время назад писал для расширения кругозора пару функций:
Function ReadBytes(file) Dim objStream : Set objStream = CreateObject("SAPI.SpFileStream") Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject") Dim objBuff, intLength file = objFSO.GetAbsolutePathName(file) intLength = objFSO.GetFile(file).Size objStream.Open file, 0 objStream.Read objBuff, intLength objStream.Close ReadBytes = objBuff End Function Function EncodeBase64(bytes) Dim objXml : Set objXml = CreateObject("Microsoft.XMLDOM") Dim objTmp : Set objTmp = objXml.createElement("tmp") objTmp.DataType = "bin.base64" objTmp.NodeTypedValue = bytes EncodeBase64 = objTmp.Text End Function Декодирование осуществляется аналогично кодированию. Пример из нынешней практики: Dim strBase64, strRegular Dim objEncoding : Set objEncoding = CreateObject("System.Text.UnicodeEncoding") Dim objBytes : objBytes = objEncoding.GetBytes_4("Это тестовая строка") Dim objXml : Set objXml = CreateObject("Microsoft.XMLDOM") Dim objTmp : Set objTmp = objXml.createElement("tmp") ' кодирование objTmp.DataType = "bin.base64" objTmp.NodeTypedValue = objBytes strBase64 = objTmp.Text WScript.Echo strBase64 ' декодирование objTmp.Text = strBase64 strRegular = objTmp.NodeTypedValue WScript.Echo strRegular |
Отправлено: 17:02, 11-01-2016 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать greg zakharov, «как реализовать» — это не вопрос. Я же не просто отсылаю «в Google», а привожу точный запрос и проверяю его результаты.
|
|
Отправлено: 21:08, 11-01-2016 | #5 |
Забанен Сообщения: 793
|
Iska, предпочитаю Google спецификации, дизассемблирование и эксперименты с кодом, словом, простое кодокопательство.
|
Отправлено: 21:32, 11-01-2016 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
ASUS EN 8600GT - проблема | Careless | Видеокарты | 8 | 05-12-2010 20:18 | |
Транслит RU to EN 1.0 | OSZone Software | Новости программного обеспечения | 0 | 18-03-2010 10:30 | |
EN 8800 | sergeus79 | Видеокарты | 11 | 18-08-2008 16:05 | |
UpdatePack-XPSP2-En | pehser | Наборы обновлений для Windows XP/2003/Windows 7 | 1 | 01-03-2007 17:42 | |
R-STUDIO v.3 EN | kovdaev | Автоматическая установка приложений | 7 | 05-12-2006 00:46 |
|