전체 글 (267) 썸네일형 리스트형 상어 중학교 중력: 아래에서 2번째줄을 쭉돌고 한줄씩올라가서 쭉 돌고 이렇게 한줄씩 쭉 체크해준다. 만약 현재칸이 비어있지 않고 -1이 아니라면 아래칸이 비어있다면, 옮겨주고, 현재칸은 빈칸으로 냅두기 90도 회전: AA 리스트를 90도 회전해주고 싶다면 for item in zip( *AA): tmp.append( list( item.reverseed() ) 90도 회전 A 배열을 90도 회전한다고 해보자. for tiem in zip(*A): tmp.append( item.reversed() ) A = copy. deepcopy(tmp) 아기상어 bfs가 진행되면서 , 첫 물고기를 찾았을때까 최단 거리이다. 최단거리를 지정해 놓고, 남아있는 큐를 쭉돌면서, 최단거리보다 거리가 긴경우에는 더이상 넣어주지 않는다. 물고기를 만날때마다 리스트에 저장해주고, 그 리스트를 sorting 해서 (거리순, x축순 ,y축순) 가장 첫번쨰 원소를 먹어준다. 그리고 먹은위치에서 start 새로 해서 bfs() 를 돈다. Key Materials 을 PEM 파일로 바꾸기 키메테리얼 을 바이너리(byte[]) 로 바꾸고 , 그 바이너리를 base64로 인코딩 하면 pem 형식이 나온다. 이것앞뒤에 헤더만 붙여주면 되는데 PKCS#1 format인 경우, PEM format 으로 표현할 땐, Header에 “BEGIN RSA PRIVATE KEY” Footer에 “END RSA PRIVATE KEY”가 표시됩니다. PKCS#8 format인 경우, PEM format 으로 표현할 땐, Header에 “BEGIN PRIVATE KEY” Footer에 “END PRIVATE KEY”가 표시됩니다. >> 의한것은 crypto.Verify() 함수에 넣을때 이렇게 넣어야한다. (JSONWEBTOKEN 라이브러리 사용할때도 이 메소드가 사용되니 PKCS#8형식으로 헤더 푸터 붙여주면.. JWT verify 할 때 생긴 에러 목록 0. jwt.io 에서는 비밀키 ,공개키 모두 넣어야지 검증이 된다. 1.PEM 수동으로 만드는법 KeyMaterial : HexString -(byte변환)-> KeyBinaray byte[] -(byte64로인코딩)-> PEM형식으로 변환 ( 앞뒤 헤더푸터붙이기) 1. PEM_read_bio_PUBKEY : 공개키 대신 String 을 넣은경우 Verify a RS256 jwt on node PEM_read_bio_PUBKEY failed Verify a RS256 jwt on node PEM_read_bio_PUBKEY failed I'm trying to I'm trying to verify a jwt that use the RS256 algorithm. When using the hs256 al.. JWT 생성은 개인키로 / 검증은 공개키로 [ RS256는 RSA + SHA256을 줄임말로 대칭키방식인 HS256과 달리 공개키를 이용하는 대표적인 암호화방식인 RSA을 사용한것이다. 메세지를 SHA256 알고리즘으로 해싱 한뒤 private key로 암호화(서명)한다. public key를 발급받은 어떠한 주체는 앞서 암호화(서명)된 해싱값을 복호화 또는 서명을 검증하는 할수 있는 방식이다. public key는 이름 그대로 보안을 유지할 필요가 없기 때문에 ID 공급자는 이 public key를 메타 데이터 URL을 통해 쉽게 구할 수 있도록 제공한다. Signature 점(.)을 구분자로 해서 헤더와 페이로드를 합친 문자열을 서명한 값이다. 서명은 헤더의 alg에 정의된 알고리즘과 비밀 키를 이용해 성성하고 Base64 URL-Safe로 .. JsonWebToken 시간 이상할떄 JsonWebToken 은 토큰을 분석한후 GMT 시간으로 나온다. 국가별로 타임존에 맞춰주자. Format Seconds GMT Fri Mar 18 2022 01:00:29 GMT+0000 Your Time Zone Fri Mar 18 2022 10:00:29 GMT+0900 (한국 표준시) 하지만 따로 손보지 않아도 알아서 잘 작동한다. 로그 남기고 싶으면 1초당 +1을 해주면된다. 나느ㄴ9시간 차이나니까 +9*60*60 해주면 된다. AppRequire 시작점 AppRequire('경로'); 는 해당 프로그램의 가장 최상단 위치부터 시작된다. 이전 1 ··· 5 6 7 8 9 10 11 ··· 34 다음