2009-03-03 2 views

답변

3

Paddingtext encoding. 대부분의 암호화 알고리즘은 블록 크기를 가지며 입력은 해당 블록 크기의 배수까지 패딩되어야합니다. 또한 바이너리 데이터를 텍스트로 변환하는 것은 일반적으로 Base64 algorithm을 포함하는데, 3 바이트를 4 문자로 확장합니다.

+0

그래서 Base64의 속성입니다! 그것은 많은 것을 설명합니다. 고마워요! – devlord

0

아니, 전혀 생각하지만, 내 첫번째 생각을 암호화 알고리즘은 (는) 출력 데이터에서 10 당 1 개 비트를 제거하도록 내장되어 있다는 것입니다. 우리는 확실히 모든 암호화 알고리즘에 대한 사실이 아니다

1

:-) 밖으로 여기에서 당신의 코드를 볼 수 없기 때문에

만 당신이 확실히 알 수 있습니다, 그것은 당신이 사용하고있는 특정 하나의 속성이어야합니다. 어떤 알고리즘인지 알지 못해도 나는 추측 할 수 있지만 비율 33/44는 알고리즘이 각 문자를 출력 바이트 배열에서 6 비트로 압축하고 있음을 나타냅니다. 이것은 아마 64 개 이상의 별개의 문자가 사용된다는 가정을하고 있다는 것을 의미합니다. 이것은 평범한 텍스트에 대한 좋은 가정입니다 (사실, base64 디코딩이 작동하는 방식입니다).

그러나 사용하고있는 알고리즘을 알지 못해도 모두 추측입니다.

+0

나는 Rijndael을 사용하고 있습니다. 감사. – devlord

1

사용중인 암호화를 알지 못하면 정확한 원인을 파악하기가 다소 어려워집니다. 시작하려면 여기 How to Calculate the Size of Encrypted Data에 대한 기사가 있습니다. 평문의 해시를 사용하는 것 같아 결과가 더 짧습니다.

편집 : 소스가 Rijndael Implementation 인 경우. ciphertext 출력은 처음에는 plaintext 입력과 동일한 길이로 보이고 base64를 사용하여 앞의 포스터에서와 같이 최종 출력을 원래 입력의 3/4으로 줄입니다.

+0

나는 Rijndael을 사용하고 있습니다. 감사! – devlord

+0

멋진 기사, 감사합니다! – devlord

+0

더 자세한 답변으로 편집했습니다 –