YouTube 網址無法再轉換為 Base64

YouTube 網址無法再轉換為 Base64

當我嘗試再次將 YouTube url 編碼為 base64 時,= 之後的值除了前兩個字母之外沒有改變。那已經是base64了嗎?網址轉換:http://www.youtube.com/watch?v=CvUN8qg9lsk

輸出(b64):http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DCvUN8qg9lsk

為什麼它們是一樣的?

答案1

當我嘗試再次將 YouTube URL 編碼為 base64 時,除了前兩個字母之外,符號後面的值=並沒有改變。最後一部分已經是 base64 了嗎?

減去=被翻譯成的符號%3D,是的,CvUN8qg9lsk已經用 Base64 編碼了。

為什麼它們是一樣的?

正如 @LPChip 指出的,您使用的函數是一個 URL 編碼器,它僅將 URL 中的特殊字元(:/?和)轉換為其十六進位等效值(不是普通字母)。+=

Base64 還包括其他編碼,對嗎?

雖然 URL 編碼被視為 Base64 編碼的一種形式,但值得注意的是,該術語可能存在超載的情況。每維基百科(強調):

「Base64 是一個一組類似的二進位到文字的編碼方案透過將 ASCII 字串格式轉換為 radix-64 表示形式來表示二進位資料。

簡而言之,base64您使用的函數並不意味著編碼/解碼CvUN8qg9lsk

作為一個小旁注,如果您添加=(填充)並嘗試CvUN8qg9lsk=使用“普通”Base64 編碼器/解碼器進行翻譯,這可能會起作用。也就是說,你不太可能得到任何有價值的東西(即對人類有意義的東西)。 YouTube 用於獲取其 ID 的值很可能是一種非常特定的演算法的產物,該演算法可能與 Google/YouTube 以外的任何內容都沒有關係。

相關內容