Cum se codifică un șir în baza64 folosind java

Base64 este o metodă de criptare la fiecare 3 octeți de intrare în 4 octeți de ieșire. Acesta este utilizat pe scară largă pentru a codifica imaginea și audio atunci când trimiteți un e-mail (la momentul de date pe 7 biți din trecut) și protecția identității (cum ar fi numele de utilizator și parola) pe site-urile de interceptare. Iată un exemplu de scriere a unui criptograf Base64 în limba populară multiplatformă Java. Acest exemplu și o linie de încercare de cod au fost luate din articol în Wikipedia.







Etapele Editare

Cum se codifică un șir în baza64 folosind java

Cum se codifică un șir în baza64 folosind java

Introduceți informațiile și numele fișierului

Cum se codifică un șir în baza64 folosind java

Cum se codifică un șir în baza64 folosind java

Potrivit articolului, valorile constantelor corespund ultimelor propuneri de lucru (RFC). În orice caz, merită să citiți cele mai recente propuneri de lucru înainte de a începe să scrieți codul.

  • Acum, luați în considerare cel mai important lucru: comprimarea simultană a 3 octeți într-un număr întreg de 24 de biți și extragerea indexurilor pe 6 biți din ea în șirul de codificare. Acestea nu sunt niște numere magice: 24 atunci când este împărțită la 6 dă 4, 6 biți pot conține numere de la 0 la 63, ceea ce poate indica orice valoare într-un șir de codare pe 64 de biți.






Cum se codifică un șir în baza64 folosind java

Cum se codifică un șir în baza64 folosind java

  1. În cele din urmă, după adăugarea celulelor libere, comprimăm ieșirea introducând pauza de linie în limitele necesare pe 76 de biți utilizând o subrutină separată pentru claritate.
  1. Dacă doriți, puteți adăuga programul principal în scopuri de testare. Acest lucru ar trebui făcut și înainte de a stabili programul de utilizare generală.
  1. Aici este modulul complet:

privat statică finală String base64code = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "0123456789" + "+ /";

private static final int splitLinesAt = 76;

comanda statică publică String (String string)

> public static String splitLines (string string)

Linii de linii = ""; pentru (int i = 0; i linii + = string.substring (i, Math.min (string.length (), i + splitLinesAt)); linii + = "\ r \ n";

> static public void principal (String [] args)

pentru (int i = 0; i System.err.println ("codare" "+ args [i] +" ""); System.out.println (codare (args [i]));

  1. Acum compilam acest lucru folosind javac, gcj, jikes sau ceva similar. Încercăm să folosim citatul Hobbes dintr-un articol din Wikipedia:

$ Java Base64 „Omul se distinge, nu numai din cauza lui, ci prin această pasiune singulară de la alte animale, care este o pofta a minții, că printr-o perseverență de încântare în generația a continuat și neobosită a cunoașterii, depășește vehemența scurt de orice plăcere carnală ". >> Iată rezultatul:

pasiune de la alte animale, care este o pofta a minții, că printr-o perseverență de încântare în generarea continuă și neobosită a cunoașterii, depășește vehemența scurtă a oricărei plăceri. "

TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4 = >>

  1. Se converge! Acest lucru poate însemna fie că cele două programe sunt incorecte, fie că ambele sunt mai puțin corecte. În acest caz, ar trebui să vizitați din nou acest articol pe Wikipedia și să citiți propunerile de lucru în cazul în care ceva lipsește aici.

Sfaturi și trucuri

Articole adiționale







Articole similare

Trimiteți-le prietenilor: