Хеш-функция Visual Basic 6.0

function replace_variables($string,$variables)
{
    return preg_replace_callback('/{\$([A-Za-z_]+)\}/',
        function ($matches) use ($variables) {
            return $variables[1];
        }, $string);
}
5
задан adrien 4 May 2012 в 16:31
поделиться

6 ответов

Вот хеш-функция CRC32:

http://www.vbcode.com/asp/showsn.asp?theID=471

3
ответ дан 14 December 2019 в 04:49
поделиться

Поскольку, какая цель Вы используете хеш? Это имеет значение, потому что некоторые хеш-алгоритмы, такие как MD5 подходят в некоторых целях, но не других.

Эта ссылка показывает реализацию VB6 MD5.

2
ответ дан 14 December 2019 в 04:49
поделиться

Пример использования CAPICOM для получения хеша

Добавить CAPICOM.DLL как ссылка проекта

uses 
  DIM key As String
  DIM sValue As String

  Dim sEncrypedValue as String 

Dim oCAP As CAPICOM.EncryptedData
Set oCAP = New CAPICOM.EncryptedData

With oCAP.
  .Algorithm.KeyLength = CAPICOM_ENCRYPTION_KEY_LENGTH_56_BITS
  .Algorithm.Name = CAPICOM_ENCRYPTION_ALGORITHM_RC4         
  .SetSecret key
  .Content = sValue 
end with

sEncrypedValue = objCAP.Encrypt(CAPICOM_ENCODE_BASE64)


To Decrypt:
oCAP.SetSecret key
oCAP.Content = sEncrypedValue 
sValue = oCAP.Decrypt(CAPICOM_ENCODE_BASE64)
2
ответ дан 14 December 2019 в 04:49
поделиться

(комментарий требует 50 представителей),

Ссылка, что предоставленный Joel хорош, но отмечает, что необходимо будет изменить значение семени на стандарт для нее для создания того же CRC32 как все остальные:

Дополнительное семя ByVal как долго = &HEDB88320

Надежда, которая сохраняет кого-то еще 30 минут работы!

1
ответ дан 14 December 2019 в 04:49
поделиться

Можно попробовать CriptoASP. Не возражайте о 'ASP' на имя, это - DLL ActiveX, которого можно инстанцировать от VB6. Это обеспечивает, методы для генерируют случайные числа, хеши с MD2, MD4, MD5 и SHA и некоторым шифрованием/дешифрованием.

Можно загрузить его с CriptoASP

Я сожалею, язык сети находится на испанском языке, но я думаю, что Вы можете undertand очень легкое использование COM с примерами в конце Doc. для CriptoASP просто измените Сервер. CreateObject с новым объектным предложением в VB6.

Скажите мне, если Вы хотите переведение примеров или документации.

Для сохранения его к текстовому файлу, можно использовать FSO (Объект Файловой системы).

0
ответ дан 14 December 2019 в 04:49
поделиться

У меня были очень хорошие результаты с этим, но реализация является c

sdbm

этот алгоритм был создан для sdbm (переопределение общественного достояния ndbm) библиотека базы данных. это, как находили, преуспело в борющихся битах, вызывая лучшее распределение ключей и меньшего количества разделений. это также, оказывается, хорошая общая хеш-функция с хорошим распределением. фактическая функция является хешем (i) = хеш (я - 1) * 65599 + ул. [я]; то, что включено ниже, является более быстрой версией, используемой в простофиле. [существует даже более быстрая, версия устройства вареного пудинга], волшебные постоянные 65599 были выбраны из ничего при экспериментировании с различными константами и оказываются началом. это - один из алгоритмов, используемых в дб Беркли (см. sleepycat), и в другом месте.

static unsigned long
sdbm(str)
unsigned char *str;
{
    unsigned long hash = 0;
    int c;

    while (c = *str++)
        hash = c + (hash << 6) + (hash << 16) - hash;

    return hash;
}

Для портирования его на vb вычисление проходит примерно так. В основном это идет через символы строки слева направо, вычисляя хеш как

newHash = the character (c) + (previousHashValue * 2^6) + 
                              (previousHashValue * 2^16) - 
                               previousHashValue**
previousHashValue = newHash
0
ответ дан 14 December 2019 в 04:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: