2017-09-24 3 views

Répondre

0

Je pense avoir trouvé une solution.

J'ai changé le PBKDF2-Code comme suit:

outputBytes = ConcatenateArrayInPlace(outputBytes, tempBytes) 

(au lieu de ConcatenateArrayInPlace outputBytes, tempBytes)

I inséré la fonction suivante:

Function ConcatenateArrayInPlace(ab1() As Byte, ab2() As Byte) 
Dim ab3() As Byte 
Dim i As Long 

ab3 = ab1 
ReDim Preserve ab3(UBound(ab1) + UBound(ab2)) 
For i = 0 To UBound(ab2) 
    ab3(i + UBound(ab1)) = ab2(i) 
Next 

ConcatenateArrayInPlace = ab3 

End Function 

Maintenant, il fonctionne.

Best,

Jasper

+0

J'ai essayé ce code. puisque vous l'avez fait fonctionner, où est le type 'hashEncoding' défini? – jsotola

+0

OP n'a pas posté cela non plus. Cependant, j'ai simplement changé la propriété de dimension à 'Optional ByVal encodeHash As String =" heHex "'. Dans la fonction, je puis utiliser le code suivant: 'Si encodeHash = "heBase64" Alors PBKDF2 = ConvToBase64String (outputBytes) ElseIf encodeHash = "heHex", puis PBKDF2 = ConvToHexString (outputBytes) Else PBKDF2 = outputBytes Fin Si » –

0

Je crois que ce qui suit reproduirait le code manquant:

Sub ConcatenateArrayInPlace(ByRef ab1() As Byte, ByRef ab2() As Byte) 
    Dim origUBound As Long 
    Dim i As Long 
    origUBound = UBound(ab1) 
    ReDim Preserve ab1(LBound(ab1) To origUBound + 1 + UBound(ab2) - LBound(ab2)) 
    For i = LBound(ab2) To UBound(ab2) 
     ab1(origUBound + 1 + i - LBound(ab2)) = ab2(i) 
    Next 
End Sub 

Il mettra à jour le tableau spécifié comme premier paramètre en annexant le tableau spécifié comme deuxième paramètre.