laalto이 Blowfish_PP이 (가 _pp을의 IT는 복어 때문에,하지 때문에), 말했듯이 블록에 노력하고 있습니다.
대개 다루는 것이 복잡하기 때문에 Crypt::CBC 모듈은 (사실상) 블록 암호를 제공하는 Crypt :: * 모듈에 래퍼되어 훨씬 간단한 방법으로 사용할 수 있습니다.
예를 들어, 크립트 :: CBC와 코드는 다음과 같습니다
#!/usr/bin/perl -w
use strict;
use Crypt::CBC;
my $key = "12345678";
my $plaintextBlock = "mystringhere";
my $cipher = Crypt::CBC->new(
-key => $key,
-cipher => 'Blowfish_PP'
);
my $ciphertext = $cipher->encrypt($plaintextBlock);
# my $textual = $ciphertext;
# $textual =~ s/([^a-zA-Z0-9])/sprintf "\\x%02x", ord $1/ge;
# print "ciphertext: [$textual]\n";
print "ciphertext: [$ciphertext]\n";
my $plaintext = $cipher->decrypt($ciphertext);
print "plaintext: [$plaintext]\n";
는 암호문 바이트의 스트림 기억, 그래서 정말 인쇄 아니다. 암호문을 더 읽기 쉬운 방법으로 보여주기 위해 코드에서 3 줄의 문자를 해쉬 할 수 있습니다 (my $ textual = $ ciphertext로 시작).
Crypt :: CBC를 사용할 때의 또 다른 이점은 다른 알고리즘으로 전환하려는 경우 Crypt :: CBC-> new() 호출에서 단 하나의 변경 사항이라는 것입니다.
그건 그렇고 - 왜 Crypt :: Blowfish_PP? 내 말은, 왜 안 크립트 : 블로우 피쉬? _PP 버전은 일반적으로 단순히 느립니다. 우리가 크립트 :: Blowfish_PP 기능적으로 동등하다고 가정 할 수 직선 Crypt::Blowfish에서
추가 참고 :
모듈은 크립트 :: CBC와 을 사용 할 수 있습니다. 이 모듈을 암호 블록 연결 모드로 사용하려는 경우 에 Crypt :: CBC의 perldoc을 읽는 것이 좋습니다.실제로 에 이상의 데이터를 8 바이트의 데이터보다 더 암호화하려는 의도가 있거나 다른 블록 암호 인 경우 에 블록 연결 체인 유형이 필요합니다. Crypt :: CBC는 매우 인 경향이 있습니다. 으로 8 바이트를 암호화하지 않을 경우 데이터는 정확히 8 바이트 길이 여야합니다. 필요하면 채우기를하십시오. "\ 0" null 바이트로 완벽하게 사용할 수 있습니다.