2009-11-26 10 views
3

에서 원래의 비밀 얻기 이것은 내가이 중 원래의 SecretKey 형식 또는 바이트 배열을 생성 할 수있다 AES 암호화헥사 포맷

00010203050607080A0B0C0D0F101112 

에 이용되는 비밀 키의 헥스 형태?

그렇다면 어떻게됩니까?

+0

수정 된 16 진 값을 게시했거나 보호하려는 데이터가 중요하지 않은 경우 ... –

+0

예 테스트 데이터 16 진수 키를 게시하는 중입니다. – rover12

답변

2

,

http://commons.apache.org/codec/apidocs/org/apache/commons/codec/binary/Hex.html#decodeHex(char[])

당신이 어떤 라이브러리를 사용하지 않으려면, 당신은 또한이 작업을 수행 할 수

byte[] bytes = new BigInteger("7F" + str, 16).toByteArray(); 
SecretKeySpec key = new SecretKeySpec(bytes, 1, bytes.length-1, "AES"); 

당신은이 BigInteger가 선행 제로를 스트립하거나 부호 첨부 바이트를 추가하지 않게하기 위해서 여분의 바이트를 0x7F에 추가한다

0

SecretKey은 인터페이스입니다. 구현 유형은 무엇입니까? J2SE에는 두 개의 구현 클래스, KerberosKeySecretKeySpec이 있으며, 둘 다 바이트 배열을 매개 변수로 사용하여 생성자를 갖습니다.

+0

SecretKeySpec을 사용하고 있습니다. – rover12

0

원래 SecretKey 형식은 무엇입니까?
byte[]에 -128에서 127 사이의 부호있는 바이트가 포함되어 있습니까?

byte[] key = { 
    0x00,0x01,0x02,0x03,0x05,0x06,0x07,0x08, 
    0x0A,0x0B,0x0C,0x0D,0x0F,0x10,0x11,0x12 
}; 

참고 : 당신이 시도하는 경우 는 상처겠습니까 당신은 0x80으로 같은 값이있는 경우 - 범위에 대한 경고를 피하기 위해 (바이트)를 0xFF - 당신은 (바이트)을 0x80로 캐스팅해야합니다 0xFF로 . 당신은 육각 디코딩을 수행하기 위해 아파치 코 몬즈 코덱을 사용할 수 있습니다