Насколько я помню, Base64 выглядит так.
Поток данных разбивается на куски по 6 бит. Эти куски кодируются
соответственно таблице (в нее входят английские буквы, цифры и
некоторые другие печатаемые символы). Если размер входных данных не
кратен 24 битам, то выходной поток дополняется символами "=".
Точно не помню.. СТатью с описанием Base64 давно потерял, а искать
сейчас лень. Точно помню, что были знаки "+" и "="... Возможно еще "\"
или "/". Остальные не помню.
Неужели это так сложно? А кы ты тогда докажешь эффективность .NET? Как Артём? Но это же не серьёзно
Или всё таки .NET не позволяет нормально описать кодирование/декодирование BASE64?
Позволяет. Я могу написать код. К тому же на VB6 когда-то я его писал.
Но я не собираюсь никому ничего доказывать. В данный момент мне нужно
сделать систему связи сайта bilet.ru и http://wftc2.e-travel.com/ :
взаимодействие по протоколу HTTP с сайтом через сокеты (DaSharm,
привет , парсинг HTML-страниц регэкспами. Для меня это в данный
момент интереснее, и мне за это платят приличные для меня деньги.
Я рад конечно, что у вас есть время на эти ненужные споры и
эксперименты. У меня его нет, я предпочитаю применять технологии на
деле, и, можно так сказать, приносить пользу обществу, а не
раздражение окружающих людей.
Итак уже полчаса назад должен был явиться на работу, а сижу и читаю
всякий тупизм
И я это поддерживаю. Base64 не может являться примером, этот тот же хелло ворлд...Берешь RFC И в любом доступном языке фигачишь... Кроме того Павлу нечего доказывать. Форум, который ты сейчас видишь написан на .NET.
А то выходит то что я говорил что ".NET - ограничитель фантазии" правда? Всё что кроме классов нереализуемо. А ведь пидобные алгоритмы ты должен писать сходу, незадумываясь. Причём не конкретно для этой ситуации, а например для подобной, немного отличающейся.
Public Shared Sub Main(args() As String)
Dim data() As Byte = System.Text.ASCIIEncoding.ASCII.GetBytes(args(0))
Dim str As String = Convert.ToBase64String(data)
Console.WriteLine(str)
End Sub
также и назад через
Convert.FromBase64String
или если тебе нужен свой base64, то вот готовый класс с VB6.0, который ходит и в точке:
' Functions for encoding string to Base64
Public Function base64_encode( byVal strIn )
Dim c1, c2, c3, w1, w2, w3, w4, n, strOut
For n = 1 To Len( strIn ) Step 3
c1 = Asc( Mid( strIn, n, 1 ) )
c2 = Asc( Mid( strIn, n + 1, 1 ) + Chr(0) )
c3 = Asc( Mid( strIn, n + 2, 1 ) + Chr(0) )
w1 = Int( c1 / 4 ) : w2 = ( c1 And 3 ) * 16 + Int( c2 / 16 )
If Len( strIn ) >= n + 1 Then
w3 = ( c2 And 15 ) * 4 + Int( c3 / 64 )
Else
w3 = -1
End If
If Len( strIn ) >= n + 2 Then
w4 = c3 And 63
Else
w4 = -1
End If
strOut = strOut + mimeencode( w1 ) + mimeencode( w2 ) + _
mimeencode( w3 ) + mimeencode( w4 )
Next
base64_encode = strOut
End Function
Private Function mimeencode( byVal intIn )
If intIn >= 0 Then
mimeencode = Mid( Base64Chars, intIn + 1, 1 )
Else
mimeencode = ""
End If
End Function
' Function to decode string from Base64
Public Function base64_decode( byVal strIn )
Dim w1, w2, w3, w4, n, strOut
For n = 1 To Len( strIn ) Step 4
w1 = mimedecode( Mid( strIn, n, 1 ) )
w2 = mimedecode( Mid( strIn, n + 1, 1 ) )
w3 = mimedecode( Mid( strIn, n + 2, 1 ) )
w4 = mimedecode( Mid( strIn, n + 3, 1 ) )
If w2 >= 0 Then _
strOut = strOut + _
Chr( ( ( w1 * 4 + Int( w2 / 16 ) ) And 255 ) )
If w3 >= 0 Then _
strOut = strOut + _
Chr( ( ( w2 * 16 + Int( w3 / 4 ) ) And 255 ) )
If w4 >= 0 Then _
strOut = strOut + _
Chr( ( ( w3 * 64 + w4 ) And 255 ) )
Next
base64_decode = strOut
End Function
Private Function mimedecode( byVal strIn )
If Len( strIn ) = 0 Then
mimedecode = -1 : Exit Function
Else
mimedecode = InStr( Base64Chars, strIn ) - 1
End If
End Function