• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

java / byte / prefix / szyfrowanie

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
252 wizyt
pytanie zadane 18 stycznia 2019 w Java przez Piotr Kusnierkiewicz Użytkownik (670 p.)
edycja 18 stycznia 2019 przez Piotr Kusnierkiewicz

Witam, 

zastanawiam się jak mogę poprawić te funkcje, aby nie dodawały kilku bitów prefixu ?

dzięki za pomoc, niżej wklejam kod:

public class Main {

	public static void main(String[] args) throws UnsupportedEncodingException {



		String data = "1040aa5e-641f-4b45-83b5-5927aba5bc08.oddsapi1";
				
		String data1 = encodeTest(data);
		String data2 = new String(encrypt(data.getBytes()));
		String data3 = new String(decrypt(data2.getBytes()));
		String data4 = decodeTest(data3);
		
		System.out.println(data1.getBytes().equals(data4.getBytes()));
	}
	
	
	public static char[] chain = {
		'9' ,'@','A','B','C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 
		'L', 'M','N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
		'Y', 'Z','a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',
		'l', 'm','n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
		'y', 'z','0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/',
		12 ,23434, 34,67,23,7887,235,5 ,67,985,2345,
	};
	
	

	public static String encodeTest(String key) {
		String out ="";
		int l = key.length();
		char ch;
		int ck = 0;
		for(int i = 0; i < l; i++) {
			if(ck >= chain.length - 1) ck = 0;
			ch = key.charAt(i);
			ch += chain[ck];
			out += ch;
			ck++;
		}
		
		return out;	
	}
	
	
	public static String decodeTest(String key) {
		String out ="";
		int l = key.length();
		char ch;
		int ck = 0;
		for(int i = 0; i < l; i++) {
			if(ck >= chain.length - 1) ck = 0;
			ch = key.charAt(i);
			ch -= chain[ck];
			out += ch;
			ck++;
		}
		
		return out;	
	}
	

	public static byte[] encrypt(byte[] data) {

		byte[] enc = new byte[data.length];

		for (int i = 0; i < data.length; i++) {
			enc[i] = (byte) ((i % 2 == 0) ? data[i] + 2 : data[i] - 2);
			enc[i] = (byte) ((i % 10 == 0) ? data[i] - 1 : data[i] + 1);
		}

		return enc;
	}

	
	public static byte[] decrypt(byte[] data) {

		byte[] enc = new byte[data.length];

		for (int i = 0; i < data.length; i++) {
			enc[i] = (byte) ((i % 2 == 0) ? data[i] - 2 : data[i] + 2);
			enc[i] = (byte) ((i % 10 == 0) ? data[i] + 1 : data[i] - 1);
		}

		return enc;
	}

output:

1040aa5e-641f-4b45-83b5-5927aba5bc08.oddsapi1
jpur¤?z«t~}{±y?°??~??¶??????ÂÄÄ?ÇÉ? ??????ß??
iqvsĄ@{¬u||˛z@±@@@>·@@@@@@ĂĹĂ@ČĘ@ˇ@@@@>@ŕ@@
jpur¤?z«t~}{±y?°??~??¶??????ÂÄÄ?ÇÉ? ??????ß??
1040a?5e-641f-?b??-??b??????aba?bc?8??????p??
false

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 477 wizyt
pytanie zadane 31 października 2017 w Java przez Neron Nowicjusz (180 p.)
0 głosów
2 odpowiedzi 856 wizyt
pytanie zadane 6 kwietnia 2020 w Inne języki przez PGR Obywatel (1,360 p.)
0 głosów
0 odpowiedzi 86 wizyt
pytanie zadane 11 maja 2020 w C# przez JakSky Stary wyjadacz (14,770 p.)

93,166 zapytań

142,177 odpowiedzi

321,946 komentarzy

62,495 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 688p. - dia-Chann
  2. 676p. - CC PL
  3. 675p. - Łukasz Piwowar
  4. 664p. - Marcin Putra
  5. 662p. - Łukasz Eckert
  6. 649p. - Michal Drewniak
  7. 641p. - rucin93
  8. 641p. - rafalszastok
  9. 629p. - Adrian Wieprzkowicz
  10. 629p. - Piotr Aleksandrowicz
  11. 621p. - Dawid128
  12. 612p. - Mikbac
  13. 611p. - ksalekk
  14. 606p. - Mariusz Fornal
  15. 602p. - Michał Telesz
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...