Jeg prøver i Java at kryptere en tekststreng (lavet om til byte-array), der fylder 48 bytes med en 1024-bits RSA-nøgle (et PublicKey-objekt i Java). Dette producerer et output, som er 256 bytes langt, men når jeg prøver at dekryptere output'et med den tilsvarende PrivateKey, får jeg en "javax.crypto.IllegalBlockSizeException: Data must not be longer than 128 bytes"-fejlbesked.
Hvordan kan det være, og hvad kan jeg gøre ved det? Hvis nøglen er for lille, beskeden for lang, eller noget helt tredje, hvad kan da gøres?
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
Ah ja, jeg har fundet fejlen! Jeg bruger en funktion til at repræsentere ciphertext som en hex-streng, hvilket gør den dobbelt så lang. Altså lå problemet slet ikke her - jeg gør nemlig sagerne præcis som i dit kodeeksempel.
Mange tak for hjælpen, du kan jo få lidt point alligevel ;)
Kunne du evt. byde på en måde at lave byte array'et, der indeholder ciphertext, om til en streng af printbare tegn med samme længde? (hvis det kan lade sig gøre)
Jeg tænker i særdeleshed på "tegn" i ciphertext, der printes som newlines (selvom det selvfølgelig egentlig er en ulæselig række bits/bytes). Jeg indsætter nemlig ciphertext andetsteds for at teste noget. Giver det mening? :-)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.