Вопрос : VB6 к функции decrypt новообращенного VB.NET

hi каждое, мне нужно помощь преобразовать Кодего VB6. Я нов в VB.Net programming.
This буду Кодим vb6; class= " lineNumbers " >
1 >

thanks

Публика объявляет псевдоним «CryptAcquireContextA» свободы «advapi32.dll» CryptAcquireContext функции (_
phProv как длиной, pszContainer ByVal как длиной, pszProvider ByVal как шнур, _
dwProvType ByVal как dwFlags длиной, ByVal как длиной) как длиной

Публика объявляет свободу «advapi32.dll» CryptCreateHash функции (hProv ByVal как длиной, _
ByVal Algid как hKey длиной, ByVal как dwFlags длиной, ByVal как длиной, phHash как длиной) как длиной

Публика объявляет свободу «advapi32.dll» CryptHashData функции (hHash ByVal как длиной, _
pbData как шнур, ByVal ByVal dwDataLen как dwFlags длиной, ByVal как длиной) как длиной

Публика объявляет свободу «advapi32.dll» CryptDeriveKey функции (_
hProv ByVal как длиной, ByVal Algid как длиной, hBaseData ByVal как длиной, dwFlags ByVal как длиной, _
phKey как длиной) как длиной

Публика объявляет свободу «advapi32.dll» CryptDestroyHash функции (hHash ByVal как длиной) как длиной

Публика объявляет свободу «advapi32.dll» CryptDestroyKey функции (hKey ByVal как длиной) как длиной

Публика объявляет свободу «advapi32.dll» CryptEncrypt функции (hKey ByVal как длиной, _
hHash ByVal как длиной, выпускные экзамены ByVal как длиной, dwFlags ByVal как длиной, pbData ByVal как шнур, _
pdwDataLen как длиной, ByVal dwBufLen как длиной) как длиной

Публика объявляет свободу «advapi32.dll» CryptDecrypt функции (hKey ByVal как длиной, _
hHash ByVal как длиной, выпускные экзамены ByVal как длиной, dwFlags ByVal как длиной, pbData ByVal как шнур, _
pdwDataLen как длиной) как длиной

Публика объявляет свободу «advapi32.dll» CryptReleaseContext функции (hProv ByVal как длиной, _
dwFlags ByVal как длиной) как длиной

Публика объявляет свободу «kernel32» GetLastError функции () как длиной

'константы для функций API тайнописи
Приватное Const CRYPT_NEWKEYSET = &H8
Приватное Const MS_DEF_PROV = «Мичрософт Басе Чрыптограпюич Провидер v1.0»
Приватное Const PROV_RSA_FULL = 1
Приватное Const ALG_CLASS_DATA_ENCRYPT = 24576
Приватное Const ALG_CLASS_HASH = 32768

Приватное Const ALG_TYPE_ANY = 0
Приватное Const ALG_TYPE_BLOCK = 1536
Приватное Const ALG_TYPE_STREAM = 2048

Приватное Const ALG_SID_RC2 = 2

Приватное Const ALG_SID_RC4 = 1
Приватное Const ALG_SID_SHA1 = 4
Приватное Const ALG_SID_MD5 = 3
Приватное Const CALG_SHA1 = ((ALG_CLASS_HASH или ALG_TYPE_ANY) или ALG_SID_SHA1)
Приватное Const CALG_MD5 = ((ALG_CLASS_HASH или ALG_TYPE_ANY) или ALG_SID_MD5)
Приватное Const CALG_RC2 = ((ALG_CLASS_DATA_ENCRYPT или ALG_TYPE_BLOCK) или ALG_SID_RC2)
Приватное Const CALG_RC4 = ((ALG_CLASS_DATA_ENCRYPT или ALG_TYPE_STREAM) или ALG_SID_RC4)

Приватное Const ENCRYPT_ALGORITHM = CALG_RC2
Приватное Const ENCRYPT_BLOCK_SIZE = 1

Приватное Const CRYPT_EXPORTABLE = 1

'использовал для того чтобы определить для использования никакого значения соли пока выводящ ключа
Приватное Const CRYPT_NO_SALT как длиной = &H10

Приватная функция CryptoDecrypt (sInputBuffer как шнур, sPassword как sErrore шнура, ByRef как шнур) как шнур
Тусклое lHExchgKey как длиной
Тусклое lHCryptprov как длиной
Тусклое lHHash как длиной
Тусклое lHkey как длиной
Тусклое lResult как длиной

Тусклое sProvider как шнур

Тусклое sCryptBuffer как шнур
Тускло lCryptBufLen как длиной
Затемните lCryptPoint как длиной

Затемните lPasswordPoint как длиной
Затемните lPasswordCount как длиной

   На ошибке переход DecryptError
   
   'получите ручку к невыполнению обязательства CSP.
   sProvider = vbNullChar
   sProvider = MS_DEF_PROV & vbNullChar
   Если не CBool, то (CryptAcquireContext (lHCryptprov, 0&, sProvider, PROV_RSA_FULL, 0)) После этого
      'Если не будет контейнера ключа невыполнения обязательства тогда, то создает одно using поле флагов
      Если GetLastError = 0 после этого
         Если не CBool, то (CryptAcquireContext (lHCryptprov, 0&, sProvider, PROV_RSA_FULL, CRYPT_NEWKEYSET)) После этого
              Переход законченный
         Закончитесь если
      Закончитесь если
   Закончитесь если
   
   'Создайте предмет хэша
   Если не CBool, то (CryptCreateHash (lHCryptprov, CALG_SHA1, 0, 0, lHHash)) После этого
         Переход законченный
   Закончитесь если
   
   'Hash в тексте пароля
   Если не CBool, то (CryptHashData (lHHash, sPassword, Len (sPassword), 0)) После этого
         Переход законченный
   Закончитесь если
   
   'Создайте ключа встречи от предмета хэша
   Если не CBool, то (CryptDeriveKey (lHCryptprov, ENCRYPT_ALGORITHM, lHHash, ByVal CRYPT_NO_SALT, lHkey)) После этого
         Переход законченный
   Закончитесь если
   
   'Разрушьте предмет хэша.
   CryptDestroyHash (lHHash)
   lHHash = 0
   
   'Подготовьте sCryptBuffer для CryptDecrypt
   lCryptBufLen = Len (sInputBuffer)
   sCryptBuffer = шнур (lCryptBufLen, vbNullChar)
   sCryptBuffer = sInputBuffer LSet
   
   'Данные по Decrypt
   Если не CBool, то (CryptDecrypt (lHkey, 0, 1, 0, sCryptBuffer, lCryptBufLen)) После этого
         Переход законченный
   Закончитесь если
   
   'Setup буфер выхода с как раз decrypted данными
   CryptoDecrypt = средний (sCryptBuffer, 1, lCryptBufLen)
   
Законченный:
   
   'Разрушьте ключа встречи
   Если (lHkey) после этого lResult = CryptDestroyKey, то (lHkey)
   
   'Разрушьте ключевую ручку ключа обменом
   Если lHExchgKey после этого CryptDestroyKey, то (lHExchgKey)
   
   'Разрушьте предмет хэша
   Если lHHash после этого CryptDestroyHash, то (lHHash)
   
   'Выпустите ручку провайдера смысла
   Если lResult lHCryptprov после этого = CryptReleaseContext, то (lHCryptprov, 0)
   
   Выходите функция
   
DecryptError:
   msgbox (GetLastError)

Class= " ясное " > конца Function
class=

Ответ : VB6 к функции decrypt новообращенного VB.NET

«Будет правильно дорогой определить функции API?»

Как заявлено ранее, измените все «длиной» к «интежеру».

Например, первое один из:

    Публика объявляет псевдоним «CryptAcquireContextA» свободы «advapi32.dll» CryptAcquireContext функции (_
        phProv как длиной, pszContainer ByVal как длиной, pszProvider ByVal как шнур, _
        dwProvType ByVal как dwFlags длиной, ByVal как длиной) как длиной

Становит это:


    Публика объявляет псевдоним «CryptAcquireContextA» свободы «advapi32.dll» CryptAcquireContext функции (_
        phProv как интежер, pszContainer ByVal как интежер, pszProvider ByVal как шнур, _
        dwProvType ByVal как dwFlags интежера, ByVal как интежер) как интежер

Будьте уверен изменить местные перемеююые также!

Так эта линия:

    Тусклое lHExchgKey как длиной

Стал:

    Тусклое lHExchgKey как интежер
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us