スポンサーリンク

このドキュメントの内容は、以下の通りです。

FreeBSD に[2010-09-06-1] で p5-Crypt-CBC と p5-Crypt-DES をインストールしました。

p5-Crypt-CBC と p5-Crypt-DES を使って、Perlでデータの暗号化をしてみます。

サンプルコード


crypt.pl

#!/usr/local/bin/perl -w

use strict;

use Crypt::CBC;
use MIME::Base64;

sub myencrypt {
	my ($secret, $plaintext) = @_;
	my $cipher = Crypt::CBC->new(
		-key    => $secret,
		-cipher => 'DES'
	);

	my $ciphertext = $cipher->encrypt($plaintext);
	return $ciphertext;
}

sub mydecrypt {
	my ($secret, $ciphertext) = @_;
	my $cipher = Crypt::CBC->new(
		-key    => $secret,
		-cipher => 'DES'
	);
	my $plaintext  = $cipher->decrypt($ciphertext);
	return $plaintext;
}

sub myencrypt64 {
	my ($secret, $plaintext) = @_;
	return encode_base64 myencrypt $secret, $plaintext;
}
sub mydecrypt64 {
	my ($secret, $ciphertext) = @_;
	my $decoded = decode_base64 $ciphertext;

	if ($decoded eq "") {
		print "can not decode base64\n";
		return "";
	}
	return mydecrypt $secret, $decoded;
}

my $plain1 = "ABC";
my $secret1 = "my secret 1";
my $secret2 = "my secret 2";
my $plain3 = "ABC1";
my $plain4 = "ABC2";
my $plain5 = "ABCABCABC";

my $encrypted1 = myencrypt64 $secret1, $plain1;
print "$encrypted1";
my $encrypted2 = myencrypt64 $secret2, $plain1;
print "$encrypted2";

$encrypted1 = myencrypt64 $secret1, $plain3;
print "$encrypted1";
$encrypted2 = myencrypt64 $secret2, $plain4;
print "$encrypted2";
$encrypted2 = myencrypt64 $secret2, $plain5;
print "$encrypted2";
$encrypted2 = myencrypt64 $secret2, "$plain5 A";
print "$encrypted2";
$encrypted2 = myencrypt64 $secret2, "$plain5 AB";
print "$encrypted2";
$encrypted2 = myencrypt64 $secret2, "$plain5 ABC";
print "$encrypted2";

$encrypted2 = myencrypt64 $secret2, "$plain5 ABCD";
print "$encrypted2";
$encrypted2 = myencrypt64 $secret2, "$plain5 ABCDE";
print "$encrypted2";
$encrypted2 = myencrypt64 $secret2, "$plain5 ABCDEF";
print "$encrypted2";
$encrypted2 = myencrypt64 $secret2, "$plain5 ABCDEFG";
print "$encrypted2";
$encrypted2 = myencrypt64 $secret2, "$plain5 ABCDEFGH";
print "$encrypted2";
$encrypted2 = myencrypt64 $secret2, "$plain5 ABCDEFGHI";
print "$encrypted2";
$encrypted2 = myencrypt64 $secret2, "$plain5 ABCDEFGHIJ";
print "$encrypted2";

実行例

% perl crypt.pl
U2FsdGVkX1+7MpE2BMdoJtdNJslBEODY
U2FsdGVkX18ypQKbxbvW2X+7YHzuTiil
U2FsdGVkX1/xFmu7pVxQlw+htxUmOwaD
U2FsdGVkX1+n6MtZiPEfGOrY4v/J8EN0
U2FsdGVkX1/fDt6owPTvC0YrJTg/gY53OJbuQR3Lj7I=
U2FsdGVkX18uriIlQCR4aMkUaZD+PVMVXMOMyBSvt2k=
U2FsdGVkX1+CRTxsWLMKHWbjo262jZ83QNIS4LwuGxs=
U2FsdGVkX1/aIYm3A+jVtLtF/L8NLgtDte502L9YyJM=
U2FsdGVkX19YgnUVWfh6E3jQ9CxFGsgQh8o3H+vxMcI=
U2FsdGVkX1/uWjWhPzkQV35YNV6CGh2urLrcJEwJJv4=
U2FsdGVkX1/qyui4RkJc7tEqg/N5QDQtD7QuJV60jUSI+KGqmcPbQg==
U2FsdGVkX18eDXMRvhOTss22Imzkj/iqRezxm/NQ07ij4qpwIwaijg==
U2FsdGVkX19E8vDnSkZ89dpIWwJQAxDjbaWTBbrmqTJ6szxzCDFa4Q==
U2FsdGVkX1/tD9f5GZiMKfv2D0SJ2mtxwzh/mjW78++DQvT9JNT8+g==
U2FsdGVkX1/UpEKZRR5MyEfBiOE6YH6RO55yzKHVJePfyPRUPdi3tw==


参照しているページ (サイト内): [2010-09-06-1]

スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

スポンサーリンク
 

過去ログ

2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー