Décodage yenc en vb.net

Contenu du snippet

J'ai developpé ce code dans le cadre du décodage des multiparts des posts du reseau Usenet.
Je metterai bientot en ligne la version d'encodage

Source / Exemple :


Public Function DecodeYenc(ByVal _Encoded() As Byte) as Byte()
        Dim _Decoded(),nbit As Byte      'Conteneur des bytes décodés
        Dim _Pos = 0 as Integer     'Increment de position du buffer
        Dim _special as boolean = False        'Special permet de sauter la position actuelle du buffer et de passer a un calcul different pour le prochain byte
        For Each _bit In _Encoded
            Array.Resize(_Decoded, _Pos + 1)    'A chaque passage on modifie la taille du buffer de sortie
            If (_special) Then                  'La boucle précédente à decouvert un caractere spéciale
                nbit = ((_bit + 256) - 106) Mod 256    'Calcul
                _Decoded(_Pos) = nbit           'On implémante au nouvelle coordonées le byte calculé
                _Pos += 1                       'Incrementation du BufferSize
                _special = False                'On remet Special a 0
            ElseIf (_bit = 61) Then             'Dectection d'un caractere spécial on passe _special a true
                _special = True
            Else
                nbit = ((_bit + 256) - 42) Mod 256 'Calcul
                _Decoded(_Pos) = nbit           'On implémante au nouvelle coordonées le byte calculé
                _Pos += 1                       'Incrementation du BufferSize
            End If
        Next
        Return _Decoded
    End Function

Conclusion :


Très simple a utilisé on envoi le buffer codé et on le récupère décodé

Ex :
Dim Decodé= DecodeYenc(Encodé)
Testé avec de nombreuse source codé 100% de comparaison positive avec un contenu decrypté, testé jusqu'a 250ko en entrée

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.