Nie rozumiem szyfrowania Base64.
Jeśli można odszyfrować ciąg Base64, jaki jest jego cel?
Dlaczego jest używany do uwierzytelniania HTTP Basic?
To tak, jakby powiedzieć komuś, że moje hasło zostało zamienione na OLLEH.
Osoby, które zobaczą OLLEH, będą wiedzieć, że oryginalne hasło to HELLO.
security
encryption
base64
ajsie
źródło
źródło
Odpowiedzi:
Base64 to nie szyfrowanie - to kodowanie. Jest to sposób przedstawiania danych binarnych przy użyciu wyłącznie znaków drukowalnych (tekstowych).
Zobacz ten akapit ze strony Wikipedii dla podstawowego uwierzytelniania HTTP :
źródło
Zwykle nazywa się to kodowaniem base64, a nie szyfrowaniem! Zaletą kodowania base64 jest to, że umożliwia reprezentowanie danych (binarnych) przy użyciu tylko ograniczonego, wspólnego podzbioru dostępnych znaków, znacznie wydajniej niż zwykłe pisanie ciągu jedynek i zer, na przykład jako ASCII.
źródło
x2
więcej bajtów niż oryginalny strumień, a 1s, 0s - tworzyx8
razy więcej bajtów. (A Base64 tworzyx1.3
więcej danych niż oryginalna tablica bajtów). Dlatego czasami dopuszczalne jest zakodowanie strumienia binarnego jako ciągu szesnastkowego, podwojenie ilości bajtów - na przykład po prostu do przechowywania skrótu hasła w bazie danych.Pl krypta jonowa wymaga klucza (lub ciąg algorytm) w celu odszyfrowania; stąd „krypta” (root: kryptografia )
Pl COD ing modyfikuje / zmiany / zmienia kod znaku do drugiego. W takim przypadku zwykłe bajty danych można teraz łatwo przedstawić i przetransportować za pomocą protokołu HTTP.
źródło
W języku potocznym „kod” jest tajemnicą. W nauce i inżynierii kod jest po prostu zgodą, zbiorem reguł, jak coś napisać.
Ten kod może być tajny. W takim przypadku nazywa się to szyfrowaniem. Ale ogólnie kod nie jest tajny. Weź kod genetyczny. To po prostu stwierdza, że nasze DNA jest zbudowany z czterech różnych bazach -
A
,C
,G
iT
, a trzy bazy wzięte razem tworzą jeden aminokwas. Jest też tabela, w której trzy litery tworzą określony aminokwas.W tym kodzie nie ma nic tajemniczego.
Podobnie Base64 nie jest tajnym kodem. Jest to raczej kod, który pozwala na przechowywanie danych w sześciu bitach na znak (w ten sposób istnieje 64 różnych jednostek, tj. „Baza” systemu to 64, tak jak podstawa naszego systemu dziesiętnego to 10, ponieważ istnieje 10 różnych jednostek zwane „cyframi”).
źródło
Może to oznaczać „Base 64 Encoding”. Szyfrowanie to nie to samo, co kodowanie.
Wikipedia: szyfrowanie
źródło
Kodowanie Base-64 jest częścią specyfikacji MIME. Zapewnia bezpieczne w transporcie kodowanie danych, które nie zostaną przeżute, jeśli / kiedy zostaną przekazane przez hosta używającego innego schematu kodowania niż ten używany przez oryginalnego klienta.
Na intertubach jest wiele różnych hostów i tak naprawdę nie można zakładać obsługi niczego innego niż 7-bitowy ASCII, bez ryzyka utraty danych / pomyłki.
Na przykład komputery mainframe IBM używają kodowania o nazwie EBCDIC (które jest dostępne w wielu różnych wersjach). Jego punkty kodowe są zupełnie inne niż punkty kodowe używane przez putery oparte na ASCII - w ASCII litery AZ to 0x41 - 0x5A; w EBCDIC litery A - Z nie są nawet ciągłym zakresem: litery AI znajdują się w 0xC1 - 0xC9, litery JR znajdują się w 0xD1 - 0xD9, a litery SZ w 0xE2 - 0xE9.
źródło
Domyślnie parametry pola nagłówka komunikatu w komunikatach protokołu HTTP (Hypertext Transfer Protocol) nie mogą przenosić znaków spoza zestawu znaków ISO-8859-1.
Jeśli nazwa użytkownika i hasło zawierają niezgodny zestaw znaków, wówczas protokół HTTP nie będzie w stanie przenieść tego tekstu. aby temu zapobiec, kodujemy nazwę użytkownika i hasło za pomocą base64, aby upewnić się, że wysyłamy znak zgodny z HTTP przez HTTP. Aby uzyskać więcej informacji, zobacz to Basic_access_authentication
źródło