14

アプリケーションで MD5 を生成する必要があります。

Google を試しましたが、MD5 の PHP コードしか見つかりません。MD5 ハッシュを使用して検証するクライアント システムに接続する必要がありますが、そのコードは PHP にあり、私のコードは VBScript を使用したクラシック ASP にあります。

私のサーバーは .Net をサポートしているため、PHP スクリプトを使用できません。Classic ASP に VBScript 用のそのような MD5 コードはありますか?

4

6 に答える 6

7

VBS スクリプトとしての MD5 の読み取り可能でダウンロード可能なバージョンを次に示します。

https://github.com/Wikinaut/md5.vbs

http://chayoung.tistory.com/entry/VBScript-MD5のコードです (このユニークなコードをありがとうございます)。

于 2013-02-21T14:52:36.217 に答える
6

上記のすべてのリンクに感謝します。それらは役に立ちましたが、誰かがそれを必要とする場合、私が見つけたこのリンクは本当に役に立ちました。 VBScript-MD5

于 2012-04-18T04:37:22.497 に答える
4

テストする方法がないため、このコードが機能するかどうかはわかりません。しかし、それはあなたが求めているもののようです。

http://www.bullzip.com/md5/vb/md5-vb-class.htm

これは、ハッシュに関する Jeff Attwood による興味深い記事です。彼は MD5 について次のような重要なことを述べています。

http://www.codinghorror.com/blog/2012/04/speed-hashing.html

于 2012-04-17T20:45:02.437 に答える
3

まず第一に、ウィルコ軍曹に感謝します!:)

収集した情報に基づいて、すべてに対して 1 つの機能を実行しました (base64/Files ではありません)。
あなたのコードは私にとって非常に役に立ちましたが、プレーンテキストとより明示的なコードを処理するために、より PHP に似た (単純な) 関数を探していました。

編集: How to hash a UTF-8 string in Classic ASP
の問題に基づいて、私は ADODB.Stream ソリューションを考え出しました。英語以外の文字を使用できるようになりました。

編集:
パラメータPlainTextがTargetに変更されました。HMACバージョンを使用できるようになりました。
Target パラメータを配列として使用するだけです。

Target(0) = PlainText
Target(1) = SharedKey

SgtWilko ;)ありがとうございます。

最初の SHA1 衝突の発表(Google セキュリティ ブログ) 2017 年 2 月 23 日。

この関数を使用すると、プレーン テキストを
MD5、RIPEMD160、SHA1、SHA256、SHA384、SHA512、HMACMD5、HMACRIPEMD160、HMACSHA1、HMACSHA256、HMACSHA384、および HMACSHA512 にハッシュ化
できます。さらに必要な場合は、System.Security.Cryptography 名前空間で見つけることができます。

Function Hash(HashType, Target)
    On Error Resume Next

    Dim PlainText

    If IsArray(Target) = True Then PlainText = Target(0) Else PlainText = Target End If

    With CreateObject("ADODB.Stream")
        .Open
        .CharSet = "Windows-1252"
        .WriteText PlainText
        .Position = 0
        .CharSet = "UTF-8"
        PlainText = .ReadText
        .Close
    End With

    Set UTF8Encoding = CreateObject("System.Text.UTF8Encoding")
    Dim PlainTextToBytes, BytesToHashedBytes, HashedBytesToHex

    PlainTextToBytes = UTF8Encoding.GetBytes_4(PlainText)

    Select Case HashType
        Case "md5": Set Cryptography = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider") '< 64 (collisions found)
        Case "ripemd160": Set Cryptography = CreateObject("System.Security.Cryptography.RIPEMD160Managed")
        Case "sha1": Set Cryptography = CreateObject("System.Security.Cryptography.SHA1Managed") '< 80 (collision found)
        Case "sha256": Set Cryptography = CreateObject("System.Security.Cryptography.SHA256Managed")
        Case "sha384": Set Cryptography = CreateObject("System.Security.Cryptography.SHA384Managed")
        Case "sha512": Set Cryptography = CreateObject("System.Security.Cryptography.SHA512Managed")
        Case "md5HMAC": Set Cryptography = CreateObject("System.Security.Cryptography.HMACMD5")
        Case "ripemd160HMAC": Set Cryptography = CreateObject("System.Security.Cryptography.HMACRIPEMD160")
        Case "sha1HMAC": Set Cryptography = CreateObject("System.Security.Cryptography.HMACSHA1")
        Case "sha256HMAC": Set Cryptography = CreateObject("System.Security.Cryptography.HMACSHA256")
        Case "sha384HMAC": Set Cryptography = CreateObject("System.Security.Cryptography.HMACSHA384")
        Case "sha512HMAC": Set Cryptography = CreateObject("System.Security.Cryptography.HMACSHA512")
    End Select

    Cryptography.Initialize()

    If IsArray(Target) = True Then Cryptography.Key = UTF8Encoding.GetBytes_4(Target(1))

    BytesToHashedBytes = Cryptography.ComputeHash_2((PlainTextToBytes))

    For x = 1 To LenB(BytesToHashedBytes)
        HashedBytesToHex = HashedBytesToHex & Right("0" & Hex(AscB(MidB(BytesToHashedBytes, x, 1))), 2)
    Next

    If Err.Number <> 0 Then Response.Write(Err.Description) Else Hash = LCase(HashedBytesToHex)

    On Error GoTo 0
End Function

これらは次のように使用できます。

Hash("sha512", "Hello World")

プロデュース:
2c74fd17edafd80e8447b0d46741ee243b7eb74dd2149a0ab1b9246fb30382f27e853d8585719e0e67cbda0daa8f51671064615d645ae27acb15bfb1447f459b

Hash("sha256", "Hello World")

プロデュース:
a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e

Hash("md5", "muñeca")

プロデュース:
ea07bec1f37f4b56ebe368355d1c058f

Hash("sha512HMAC", Array("Hello World", "Shared Key"))

プロデュース:
28e72824c48da5a5f14b59246905d2839e7c50e271fc078b1c0a75c89b6a3998746bd8b2dc1764b19d312702cf5e15b38ce799156af28b98ce08b85e4df65b32

于 2017-02-15T17:31:17.023 に答える
1

MD5 チェックサムを生成する Javascript コードがあります。そのうちの 1 つは、Google クロージャ ライブラリから派生したもので、ここから入手できます

Javascript から Windows スクリプト コンポーネントを作成し、VB を含む任意の COM 対応言語からそのコンポーネントを呼び出すのは非常に簡単です。

これが実際の例です。

于 2012-04-17T20:45:55.973 に答える