“Invalid algorithm specified” when using AES with OFB cipher mode (VB.NET)

半世苍凉 提交于 2020-01-06 03:31:06

问题


I have to use AES encryption with OFB cipher mode , I use VB.NET 4.5 ,windows 8 and the following code:

   Public Function DoEncryption(ByVal KeyArray() As Byte, ByVal IVArray() As Byte, ByVal Buffer As String) As Byte()
    Dim encrypted() As Byte
    Using a As Aes = Aes.Create()
        a.Mode = CipherMode.OFB

        Dim encryptor As ICryptoTransform
        encryptor = a.CreateEncryptor(KeyArray, IVArray)


        ' Create the streams used for encryption. 
        Using msEncrypt As New MemoryStream()
            Using csEncrypt As New CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)
                Using swEncrypt As New StreamWriter(csEncrypt)

                    'Write all data to the stream.
                    swEncrypt.Write(Buffer)
                End Using
                encrypted = msEncrypt.ToArray()
            End Using
        End Using
    End Using

    Return encrypted

End Function

I have an error "Invalid algorithm specified" at

  swEncrypt.Write(Buffer)

any suggestions?


回答1:


Yes it works using BouncyCastle as @Plutonix mentioned my new code after install BouncyCastle using Nuget is:

Imports System.Security.Cryptography
Imports System.IO
Imports Org.BouncyCastle.Crypto
Imports Org.BouncyCastle.Security
Imports Org.BouncyCastle.Crypto.Parameters
Public Class EncryptionFunction
Public Function DoEncryption(ByVal KeyArray() As Byte, ByVal IVArray() As Byte, ByVal Buffer As Byte()) As Byte()

        Dim ae As New CipherKeyGenerator()
        ae.Init(New KeyGenerationParameters(New SecureRandom(), 256))
        Dim aesKeyParam As KeyParameter = ParameterUtilities.CreateKeyParameter("AES", KeyArray)
        Dim aesIVKeyParam As ParametersWithIV = New ParametersWithIV(aesKeyParam, IVArray)
        Dim cipher As IBufferedCipher = CipherUtilities.GetCipher("AES/OFB/NoPadding")
        cipher.Init(True, aesIVKeyParam)
        Dim encrypted() As Byte = cipher.DoFinal(Buffer)


        Return encrypted

    End Function
End Class

Thank you :)



来源:https://stackoverflow.com/questions/30560523/invalid-algorithm-specified-when-using-aes-with-ofb-cipher-mode-vb-net

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!