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

 
Previous Post 펄(Perl)의 장단점펄,Perl] 숫자 3자리마다 쉼표 찍기 (1000단위 구분 콤마 넣기): Thousand...도스.BAT] 경로(Path) 알아내기/ 패스 문자열 얻어 오기: DOS 배치 파일ZIP, RAR 압축파일 속, 파일 이름 변경; 압축된 파일명 리네임(Rename)리눅스 파일 찾기 명령: find 사용법 예제, Linux File Find Command...자바.Java] 실수를 16진수Hex로, float를 2진수로 변환, double형을 lo...자바.Java] 정수 실수 종류(데이터형;자료형), 최소값/최대값: int, long, f...펄.Perl] 숫자 배열에서, 최소값 최대값 찾기 - Find Min Max Value펄.Perl] 문자열 합치기, 문자열 연결/추가/병합: String Concatenate우분투 리눅스] 한글/한자 입력키 - Linux Hangul Hanja Input Key

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

Wednesday, October 18, 2006

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)
        http://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

☞ Perl(펄)

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

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