Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2009, 01:54   #1
V0R0NA
 
Регистрация: 01.12.2009
Сообщений: 5
По умолчанию Кодирование - декодирование паролей программы jajc

Собственно сабж, есть две делфёвые функции (кодирования и декодирования), необходимо сделать тоже самое, только на vbs (wsh)
Код:
   function Decrypt(const S:string; Key:Word):WideString;
   const
      c1=51472;
      c2=30759;
   var
      i:integer;
      X:string;
   begin
      SetLength(X,length(S));
      for i:=1 to length(S) do begin
         X[i]:=Char(Byte(S[i]) xor (Key shr 8));
         Key:=(Byte(S[i])+Key)*c1+c2;
      end;
      Result:=UTF8Decode(X);
      Finalize(x);
   end; 

   function Encrypt(const S:string; Key:Word):WideString;
   const
      c1=51472;
      c2=30759;
   var
      i:integer;
      X:string;
   begin
      S:=UTF8Encode(S);
      SetLength(X,length(S));
      for i:=1 to length(S) do begin
         X[i]:=Char(Byte(S[i]) xor (Key shr 8));
         Key:=(Byte(X[i])+Key)*c1+c2;
      end;
            Result:=X;
            Finalize(x);
   end;
Загвоздка произошла на операциях ANSI->UTF8 и UTF8->ANSI...
В силу того, что я начинающий vbs-кодер, я так и не вкурил каким образом это сделать. Во многих документациях натыкался на объект System.Text.UTF8Encode, но пляски с бубном воруг него ни к чему не привели, хелп ми плиз!

Собственно, код:
Код:
Function Enc(str, key)
	c1 = 51472
	c2 = 30759
		SET conv = CreateObject("System.Text.UTF8Encoding")
		str = conv.GetString(str)
		
		nstr = ""
		'Wscript.Echo (str)
		for i = 1 to Len(str)
			nstr = nstr + Chr(Asc(Mid(str, i, 1)) xor (key\(2 ^ 8)))
			key = (Asc(Mid(nstr, i, 1))+key)*c1+c2
		Next
                Enc = nstr
End Function

Последний раз редактировалось V0R0NA; 01.12.2009 в 12:22.
V0R0NA вне форума Ответить с цитированием
Старый 01.12.2009, 11:14   #2
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Код форматировать не пробовали?
SkyM@n вне форума Ответить с цитированием
Старый 01.12.2009, 11:39   #3
V0R0NA
 
Регистрация: 01.12.2009
Сообщений: 5
По умолчанию

Цитата:
Сообщение от SkyM@n Посмотреть сообщение
Код форматировать не пробовали?
Всмысле форматировать код?
V0R0NA вне форума Ответить с цитированием
Старый 01.12.2009, 11:45   #4
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Цитата:
Сообщение от V0R0NA Посмотреть сообщение
Всмысле форматировать код?
В смысле для читабельности.
SkyM@n вне форума Ответить с цитированием
Старый 01.12.2009, 12:18   #5
V0R0NA
 
Регистрация: 01.12.2009
Сообщений: 5
По умолчанию

Цитата:
Сообщение от SkyM@n Посмотреть сообщение
В смысле для читабельности.
Уж извиняйте после копи-паста символы табуляции исчезли, так лучше?

Последний раз редактировалось V0R0NA; 01.12.2009 в 12:21.
V0R0NA вне форума Ответить с цитированием
Старый 01.12.2009, 12:33   #6
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Код:
Option Explicit

Dim objFSO, strFileIn, strFileOut

strFileIn = WScript.ScriptName

Set objFSO = CreateObject( "Scripting.FileSystemObject" )
strFileOut = objFSO.GetBaseName( strFileIn ) & "_utf8.txt"
Set objFSO = Nothing

UTF8 strFileIn, strFileOut


Function UTF8( myFileIn, myFileOut )
' UTF8()  Version 1.00
' Open a "plain" text file and save it again in UTF-8 encoding
' (overwriting an existing file without asking for confirmation).
'
' Based on a sample script from JTMar:
' http://bytes.com/groups/asp/52959-save-file-utf-8-format-asp-vbscript
'
' Written by Rob van der Woude
' http://www.robvanderwoude.com

    Dim objStream

    ' Valid Charset values for ADODB.Stream
    Const CdoBIG5        = "big5"
    Const CdoEUC_JP      = "euc-jp"
    Const CdoEUC_KR      = "euc-kr"
    Const CdoGB2312      = "gb2312"
    Const CdoISO_2022_JP = "iso-2022-jp"
    Const CdoISO_2022_KR = "iso-2022-kr"
    Const CdoISO_8859_1  = "iso-8859-1"
    Const CdoISO_8859_2  = "iso-8859-2"
    Const CdoISO_8859_3  = "iso-8859-3"
    Const CdoISO_8859_4  = "iso-8859-4"
    Const CdoISO_8859_5  = "iso-8859-5"
    Const CdoISO_8859_6  = "iso-8859-6"
    Const CdoISO_8859_7  = "iso-8859-7"
    Const CdoISO_8859_8  = "iso-8859-8"
    Const CdoISO_8859_9  = "iso-8859-9"
    Const cdoKOI8_R      = "koi8-r"
    Const cdoShift_JIS   = "shift-jis"
    Const CdoUS_ASCII    = "us-ascii"
    Const CdoUTF_7       = "utf-7"
    Const CdoUTF_8       = "utf-8"

    ' ADODB.Stream file I/O constants
    Const adTypeBinary          = 1
    Const adTypeText            = 2
    Const adSaveCreateNotExist  = 1
    Const adSaveCreateOverWrite = 2

    On Error Resume Next
    
    Set objStream = CreateObject( "ADODB.Stream" )
    objStream.Open
    objStream.Type = adTypeText
    objStream.Position = 0
    objStream.Charset = CdoUTF_8
    objStream.LoadFromFile myFileIn
    objStream.SaveToFile myFileOut, adSaveCreateOverWrite
    objStream.Close
    Set objStream = Nothing
    
    If Err Then
        UTF8 = False
    Else
        UTF8 = True
    End If
    
    On Error Goto 0
End Function
Измените под свои нужды.
SkyM@n вне форума Ответить с цитированием
Старый 01.12.2009, 12:41   #7
V0R0NA
 
Регистрация: 01.12.2009
Сообщений: 5
По умолчанию

Пасиба, гугл я уже тоже курил, но тут насколько я понимаю, работа с файлами, сохранение в определённых кодировках, а мне нужно просто из строки ANSI получить UTF8 чтоб потом её обработать

Последний раз редактировалось SkyM@n; 01.12.2009 в 14:45.
V0R0NA вне форума Ответить с цитированием
Старый 01.12.2009, 12:45   #8
V0R0NA
 
Регистрация: 01.12.2009
Сообщений: 5
По умолчанию

Извиняюсь, вчитался, просто код похожий, спасибо, попробую...
V0R0NA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Декодирование видео A_r_r_a_y PHP 2 01.09.2009 00:23
Кодирование и декодирование .тхт extrimportal Общие вопросы Delphi 1 05.05.2009 18:47
Декодирование BMP Rezet Мультимедиа в Delphi 6 24.01.2009 22:33
Декодирование 48 битного RAW формата Rezet Мультимедиа в Delphi 5 23.01.2009 18:21
Кодирование. Blizzz Общие вопросы Delphi 5 19.01.2009 18:28