mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Wednesday, October 18, 2006

Perl 펄] BASE64 인코더/디코더; 파일을 base64로 인코딩 디코딩하기; File Encode, Decode


base64로 인코딩하는 프로그램이 리눅스나 Cygwin에도 없더군요. 그래서 base64.pl 이라는 펄 프로그램을 만들어 보았습니다.

MIME::Base64 라는 모듈을 사용하는데, 액티브펄(ActivePerl)에는 기본적으로 설치되어 있습니다.


BASE64 인코더/디코더


파일명: base64.pl
#!/usr/bin/perl
use strict; use warnings;

use MIME::Base64 qw( encode_base64 decode_base64 );


  &help if $#ARGV < 1; # 옵션이 없거나 부족하면 도움말 출력

  if    ($ARGV[0] eq "-e") { encodeFile(@ARGV); } # 인코딩
  elsif ($ARGV[0] eq "-d") { decodeFile(@ARGV); } # 디코딩
  else                     { &help; }             # 도움말




sub encodeFile {
  open IN, "<", $_[1] or die "$!: '$ARGV[1]'\n"; binmode(IN);

  my $buf;

  while (read(IN, $buf, 60 * 57)) {
    print encode_base64($buf);
  }
  close(IN);
}


sub decodeFile {
  my $output_filename = "out.bin";            # 출력 파일 기본값
  $output_filename = $_[2] if defined $_[2];  # 출력 파일을 지정했다면, 그 이름을 사용

  open IN, "<", $_[1] or die "$!: '$_[1]'\n";
  open OUT, ">", $output_filename or die "$!: '$output_filename'\n"; binmode(OUT);

  while (<IN>) {
    print OUT decode_base64($_);
  }
  close(IN); close(OUT);
}


sub help {
  die <<TEXT;

 BASE64 Encoder/Decoder v1.0 (2006)
        https://mwultong.blogspot.com/


   [ Usage ]

        Encode   : base64.pl -e <input filename>

        Decode   : base64.pl -d <input filename> [output filename]
                   * Default Output File : out.bin

   [ Examples ]

        Encode   : base64.pl -e test.jpg > base64.txt

        Decode   : base64.pl -d base64.txt test.jpg
TEXT
}



인코딩하는 법


-e 라는 옵션 뒤에, 파일명을 붙이면 인코딩 결과가 화면으로 출력됩니다. 그것을 > 이런 기호로 재지향(Redirection)하여 텍스트 파일로 저장하면 됩니다.


디코딩하는 법


-d 라는 옵션 뒤에, base64코드로 저장된 텍스트 파일명을 붙이면, 디코딩 결과가 out.bin 이라는 파일로 저장됩니다. 출력 파일명을 뒤에 붙여 주면 out.bin 대신 다른 이름으로 하드에 저장됩니다.



▶▶ 이진파일을 텍스트파일로 변환, 바이너리를 아스키로, Convert Binary File to Text File




tag: perl
Perl | 펄

0 Comments:

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top