$ echo -n "apfjxkic-omyuobwd339805ak:60a06cd2ddfad610b9490d359d605407" | base64
YXBmanhraWMtb215dW9id2QzMzk4MDVhazo2MGEwNmNkMmRkZmFkNjEwYjk0OTBkMzU5ZDYwNTQw
Nw==
Çıktının önce bir geri dönüşü var Nw==
. Linux'ta base64 üretmenin doğru yolu nedir?
5
Çıktının yeni bir satır içerdiğinden emin misiniz ve sadece pencere sarma bölümünüz değil mi? Bu komut benim için mac'ta iyi çalıştı. Hangi işletim sistemini kullanıyorsunuz?
—
Ian,
Base64'ü tanımlayan RFC 2045, 76 karakterden sonra (maksimum) yeni bir satır GEREKTİRİR. Örneğinizin doğru yol olmadığını düşündüren nedir ?
—
MSalters
@ MSalters RFC 4648 özellikle bu sorunu giderir. Uygulamalar, bu belgeye atıfta bulunan şartname, belirli sayıda karakterden sonra satır yayınları eklemek için açıkça baz kodlayıcıları yönlendirmediği sürece, temel kodlanmış verilere satır beslemeleri EKMEMELİDİR. => bu uygulama, 'düz' base64 kodlu çıktı ürettiğini iddia ettiği sürece RFC 4648'e göre yanlış. Daha ilginç olarak, GNU base64 (söz konusu olan?) Manpages, özellikle varsayılan olarak sargılamadığını ve hangi RFC 4648'in eski olduğunu belirten RFC 3548'i belirtir.
—
Bob,
@Bob: RFC'ler API kararlılığına biraz daha az saygı gösterir; Bir base64 aracı, komut dosyalarını bozmadan çıktı biçimini değiştiremez.
—
MSalters
@ MSalters Eski bir sürümün bulunmadığından emin olamıyorum, ancak GNU base64 2004'te yazıldı ve AFAICT her zaman RFC 3548'i takip ettiğini iddia etti. Yani orijinal uygulama bile "yanıldı". En azından, uygulaması belgeleriyle uyuşmuyor. Neyse, neden OP'nin örneğinin doğru olduğunu ve bir RFC'ye başvurduğunu sordunuz; Benim cevabım, aslında taban64'ü yalıtımda tanımlayan doğru RFC'dir. Cevabınız "tarihsel nedenlerden dolayı" ise, öyle olsun, ancak OP burada yanlış değil.
—
Bob,