2014-06-15 2 views
1

자바에서 AES 암호화 알고리즘을 사용하여 데이터베이스 값을 암호화하고 있습니다. 내 암호화 함수는 암호화 된 값을 String으로 반환하지만 "Int"유형의 열은 매우 논리적 인 문자열 값을 저장하지 못합니다 .. 정수 (정수)로 정수를 암호화하는 방법이 있습니까? 고맙습니다.AES 정수에서 정수로

+0

가능한 해킹 중 하나는 문자열을 int로 변환하는 것이지만 충분히 좋은 솔루션이라고 생각하지 않습니다. – awksp

+2

"내 암호화 함수가 암호화 된 값을 String으로 반환합니다. 당신이 그것을 원하지 않거나 필요로 할 때'String'을 반환하고 있습니까? – jww

+0

그럼 어떻게해야합니까? 내 암호화 기능이 런타임시 조작되는 입력 유형을 인식하는 방법은 무엇입니까? – user1540371

답변

0

항상 문자열을 정수로 인코딩 할 수 있지만 큰 정수일 수 있습니다.

큰 정수를 쓸 여유가 없으면 여러 개의 작은 정수로 인코딩 할 수 있습니다.

큰 정수 나 다중 정수를 쓸 여유가 없으면 어쨌든 ECB 모드에서 블록 암호를 사용하는 것이 좋지 않을 수도 있습니다.

0

암호화 출력을 문자열에서 이진으로 변환 한 다음 이진수에서 십진수로 변환 해보십시오.

1

일반 AES는 바이트 배열을 반환합니다. 당신은 바이트의 배열, Base64로 텍스트 문자열이 저장하거나 BigInteger A와 :

BigInteger myBigInt = new BigInteger(AESByteArray); 

는 128 비트, 또는 더 큰, AES 결과가 32 비트 자바 int에 맞는 매우 낮다. 당신이 32 비트 입력 및 32 비트 출력을 원하는, 그래서 모든 자바 int에 맞는 경우

, 다음 자신의 32 비트 Feistel cipher 쓰기, 또는 당신이 필요한 모든 비트 크기를 설정할 수 있습니다 Hasty Pudding Cipher을 사용 중.

관련 문제