Конвертировать метод шифрования VB.NET в PHP - PullRequest
0 голосов
/ 02 декабря 2011

надеялся, что кто-нибудь сможет мне помочь.

Мне очень нужен этот код VB.NET, преобразованный в PHP.

Это инструкции, которые я получил:

Чтобы проверить ваше шифрование, зашифруйте следующее слово этими ключами ипроверьте, получаете ли вы тот же результат:

Текст для шифрования: MyPassword
Солевой ключ: * & ^% $ # @!
Ключ PBE: FWV70700
PBE IV: WEBSV

ПРИМЕЧАНИЕ:
Зашифрованный текст: A + V3JATKUt / T91HiF23eOA ==
Ниже приведен короткий фрагмент кода VB.Net, который будет выполнять шифрование, как нам нужно.Программа VB имеет форму (From1) с двумя текстовыми полями (TextBox1 и TextBox2) и одной кнопкой (Button1):

VB.NET Функция:

Imports System
Imports System.IO
Imports System.Xml
Imports System.Text
Imports System.Security.Cryptography
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    TextBox2.Text = EncryptText(TextBox1.Text)
End Sub
Public Shared Function EncryptText(ByVal strText As String) As String
    Dim pdbPassword As PasswordDeriveBytes
    Dim pdbIV As PasswordDeriveBytes
    Dim DES As New DESCryptoServiceProvider
    Dim salt() As Byte = {Asc("*"), Asc("&"), Asc("^"), Asc("%"), Asc("$"), Asc("#"), Asc("@"), Asc("!")}
    Dim ms As New System.IO.MemoryStream
    Dim cs As CryptoStream
    Dim plainText As String = strText
    Dim plainBytes() As Byte
    plainBytes = System.Text.Encoding.UTF8.GetBytes(plainText)
    pdbPassword = New PasswordDeriveBytes("FWV70700", salt)
    pdbPassword.HashName = "SHA1"
    pdbPassword.IterationCount = 1000
    DES.Key = pdbPassword.GetBytes(8)

    pdbIV = New PasswordDeriveBytes("WEBSV", salt)
    pdbIV.HashName = "SHA1"
    pdbIV.IterationCount = 1000
    DES.IV = pdbIV.GetBytes(8)
    cs = New CryptoStream(ms, DES.CreateEncryptor, CryptoStreamMode.Write)
    cs.Write(plainBytes, 0, plainBytes.Length)
    cs.FlushFinalBlock()
    Return Convert.ToBase64String(ms.ToArray)
End Function

Может ли кто-нибудь конвертировать это в PHP для меня?

1 Ответ

1 голос
/ 02 декабря 2011

Вам нужно найти соответствующие функции, которые делают то же самое в PHP, а затем кодировать их в PHP.Лучше сделать это шаг за шагом, чтобы вы могли сравнить, работает ли он уже или нет.Поскольку у вас есть код vb.net, вы можете сделать это.

Иногда функции немного различаются между .net и PHP, поэтому могут возникнуть определенные проблемы, о которых вам нужно позаботиться, поэтому лучше делайте все шаг за шагоми дважды проверил.

См. также этот связанный вопрос: Та же строка, различные значения хеша SHA1, полученные из VB.net и PHP .

...