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
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.