Skip to content

fj2008/JWTstudy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

7 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Spring security ๊ธฐ๋ฐ˜์— JWTํ† ํฐ์„œ๋ฒ„ ๊ตฌ์ถ•ํ•ด๋ณด๊ธฐ ๊ณต๋ถ€

์ด ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ์—๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•˜๊ณ  ์ •๋ฆฌํ•œ ๋‚ด์šฉ์€ ์ œ ๋ธ”๋กœ๊ทธ์— ๋†€๋Ÿฌ์˜ค์‹œ๋ฉด ์ •๋ฆฌ ๋ผ ์žˆ์Šต๋‹ˆ๋‹ค ใ…Žใ…Ž

RSA ํ‚ค ๋ฐœ๊ธ‰

openssl genrsa -out private_key.pem 2048

โ”– ์šฐ์„  BEGIN RSA PRIVATE KEY ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํ‚ค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

openssl pkcs8 -topk8 -inform PEM -in private_key.pem -out rsa_private_key.pem -nocrypt

๊ณต๊ฐœํ‚ค ์ถ”์ถœ

openssl rsa -in private_key.pem -pubout -out public_key.pem 

์ž๋ฐ”์ฝ”๋“œ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ํ‚ค์Œ ์ƒ์„ฑ

KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA");
generator.initialize(2048);
KeyPair pair = generator.generateKeyPair();

๋‹ค์Œํ‚ค๋กœ ๊ณต๊ฐœํ‚ค์™€ ๊ฐœ์ธํ‚ค ์ถ”์ถœ

PrivateKey privateKey = pair.getPrivate();
PublicKey publicKey = pair.getPublic();

ํŒŒ์ผ์— ํ‚ค ์ €์žฅ

ํ‚ค๋ฅผ ํŒŒ์ผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ์‹ถ์„๋•Œ ํŒŒ์ผ์— ํ‚ค๋ฅผ ์ €์žฅํ•˜๋ ค๋ฉด ๊ธฐ๋ณธ ์ธ์ฝ”๋”ฉ ํ˜•์‹์œผ๋กœ ํ‚ค ์ฝ˜ํ…์ธ ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” getEncoded ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

try (FileOutputStream fos = new FileOutputStream("public.key")) {
    fos.write(publicKey.getEncoded());
}

ํŒŒ์ผ์—์„œ ํ‚ค๋ฅผ ์ฝ์œผ๋ ค๋ฉด ๋จผ์ € ๋‚ด์šฉ์„ ๋ฐ”์ดํŠธ ๋ฐฐ์—ด๋กœ ๋กœ๋“œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค

File publicKeyFile = new File("public.key");
byte[] publicKeyBytes = Files.readAllBytes(publicKeyFile.toPath());

๊ทธ๋Ÿฐ ๋‹ค์Œ KeyFactory ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์ œ ์ธ์Šคํ„ด์Šค๋ฅผ ๋‹ค์‹œ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

KeyFactory keyFactory = KeyFactory.getInstance("RSA");
EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(publicKeyBytes);
keyFactory.generatePublic(publicKeySpec);

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages