Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как в макросе получить md5 от строки (Excel 2003)? / 3 сообщений из 3, страница 1 из 1
18.11.2008, 14:14:50
    #35660540
Serrrgio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в макросе получить md5 от строки (Excel 2003)?
Сабж.
Казалось бы простой вопрос, но что-то затупил и ничего не могу найти...
может кто сталкивался?

PS: MS Excel 2003
...
Рейтинг: 0 / 0
18.11.2008, 15:05:27
    #35660724
Aster32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в макросе получить md5 от строки (Excel 2003)?
http://www.sql.ru/forum/actualthread.aspx?tid=196860
...
Рейтинг: 0 / 0
18.11.2008, 16:54:01
    #35661157
Serrrgio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в макросе получить md5 от строки (Excel 2003)?
спасибо, разобрался :)
вобщем сделал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
Option Explicit
Declare Function CryptAcquireContext Lib "advapi32" Alias "CryptAcquireContextA" (ByRef hProv As Long, ByVal sContainer As String, _
        ByVal sProvider As String, ByVal lProvType As Long, ByVal lFlags As Long) As Long
Declare Function CryptCreateHash Lib "advapi32" (ByVal hProv As Long, ByVal lALG_ID As Long, _
                                                 ByVal hKey As Long, ByVal lFlags As Long, ByRef hhash As Long) As Long
Declare Function CryptHashData Lib "advapi32" (ByVal hhash As Long, ByVal lDataPtr As Long, ByVal lLen As Long, ByVal lFlags As Long) As Long
Declare Function CryptGetHashParam Lib "advapi32" (ByVal hhash As Long, ByVal lParam As Long, ByVal sBuffer As String, _
                                                   ByRef lLen As Long, ByVal lFlags As Long) As Long
Declare Function CryptDestroyHash Lib "advapi32" (ByVal hhash As Long) As Long
Declare Function CryptReleaseContext Lib "advapi32" (ByVal hProv As Long, ByVal lFlags As Long) As Long

Const MS_DEF_PROV = "Microsoft Base Cryptographic Provider v1.0"
Const PROV_RSA_FULL As Long =  1 
Const CRYPT_NEWKEYSET As Long =  8 
Const CALG_MD5 As Long =  32771 
Const HP_HASHVAL As Long =  2 

Public Function MD5Hash(rngdata) As String
    Dim rngdata2 As String
    Dim hProv As Long
    Dim hhash As Long
    Dim lLen As Long
    Dim sBuffer As String
    Dim sBuffer2 As String
    Dim lresult As Long
    Dim i As Long
    
    CryptAcquireContext hProv, vbNullString, MS_DEF_PROV, PROV_RSA_FULL,  0 
    If hProv =  0  Then
        CryptAcquireContext hProv, vbNullString, MS_DEF_PROV, PROV_RSA_FULL, CRYPT_NEWKEYSET
    End If
    If hProv <>  0  Then
        CryptCreateHash hProv, CALG_MD5,  0 ,  0 , hhash
        If hhash <>  0  Then
            rngdata2 = StrConv(rngdata, vbFromUnicode)
            lresult = CryptHashData(hhash, StrPtr(rngdata2), LenB(rngdata2),  0 &)
            sBuffer = Space( 16 )
            lLen =  16 
            CryptGetHashParam hhash, HP_HASHVAL, sBuffer, lLen,  0 
            For i =  1  To  16 
                sBuffer2 = Hex(Asc(Mid(sBuffer, i,  1 )))
                If Len(sBuffer2) <>  2  Then
                    MD5Hash = MD5Hash + "0" + sBuffer2
                Else
                    MD5Hash = MD5Hash + sBuffer2
                End If
            Next
            CryptDestroyHash hhash
        End If
        CryptReleaseContext hProv,  0 
    End If
End Function
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как в макросе получить md5 от строки (Excel 2003)? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]