1Perlのcrypt 投稿者:  投稿日:2002年05月26日(日)
http://www.google.com/search?q=Perl+crypt&num=10&meta=lr%3D%26hl%3Dja&num=10&safe=off
2投稿者:  投稿日:2002年05月26日(日)
 ここで,専用のマシンを用いずに,あくまで汎用コンピュータでソフトウェア的に総当たり攻撃を行った場合の,解読に必要な平均時間をTable.1-1に示す.これがDESが安全であるといわれた理由である.ただし,DES解読には総当たり攻撃以外にも,差分攻撃法や線形解読法を代表とするいくつかのより効率のよい解読アルゴリズムが存在する

http://taafin.hoops.livedoor.com/jikan.html
3投稿者:  投稿日:2002年05月26日(日)
 crypt は名前が名前なので間違えやすいですが、「暗号化」する関数
では*ありません*。一方向性ハッシュ関数と言う不可逆関数の一種です。

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/28410
4投稿者:  投稿日:2002年05月26日(日)
付録2――PGP内部の魔法
http://hanran.tripod.com/crypt/faq/appendix2.html
5投稿者:  投稿日:2002年05月26日(日)
どうも、unix系って、ファイルの暗号化のためにcryptって組み込み関数あるみたいだけど、Perlでは、このsalt(暗号化キー)に、2文字の文字列しか指定できんのねー。しかも、ソースを見ると、その2文字は固定と来ている。ちゅーことは、総当たりでcryptして、その暗号化された文字になればOKってことで、10分ほどで作ったナリよ(笑) (あとでわかった話ですが、パスワードの堅牢性を調べる管理者向けのツールとして、これと同じようなものがいろいろとついてました>LinuxをインストールしたCD)

http://www.sun-inet.or.jp/~yaneurao/rsp/rsp30to37.html
6投稿者:  投稿日:2002年05月26日(日)
共通鍵方式で広範囲に商用で用いられていた暗号システムにDESがあります。
DESは1974年に米国商務省からの一般要請にIBM社が応えたもので、1977年に米国連邦標準に採用されました。
 DESは64ビットブロックのデータと56ビットの鍵を用いるブロック暗号です。簡単なビット一転置とXOR演算の組み合わせ理論を16回繰り返しています。内部的にはデータのフィードバックや条件判断部分がなく、処理が遂次的なので、パイプライン化すれば高速に処理することが出来ます。
 DESのキーを知らずに解読するためには、現状では総当たり方式(キーの値を変えながら有意な結果が得られるまで試行する)以外の方法はないとされています。
 しかし、最近の技術ではそれほど解読が困難ではない状態となっています。Michael Wienerの著書によれば、1994年の技術を用いて100万ドルをかければ、3.5時間でDESの鍵探索が可能な計算機システムを作りあげることが可能としています。
 そこでDESに代わる電子商取引システムを保護する新しい標準、またはデファクトスタンダードの対称型システムとして次のものが考案されています。

http://labo.heisei-tech.co.jp/Security/Crypt/page2.html
7投稿者:  投稿日:2002年06月06日(木)

PLAINTEXT
暗号化する文字列を 8 バイト以内で指定します。ASCII だけでなく日本語などいかなる文字も使えます。8 バイトを超えた分は切り取られます。

SALT
暗号化のベースとなる文字列を 2 バイトで与えます。使える文字は 0 〜 9、A 〜 Z、a 〜 z、「.(ピリオド)」、「/(スラッシュ)」の 64 文字の中から選びます。
SALT を省略したり、1 バイトしか指定しなかったり、SALTとして使えない文字が指定されていた場合は、64 文字の中から SALT がランダムに決定されます。*1

*1 : Perl の crypt() 関数は、SALT 省略時は "AA"、不正な SALT には "." を宛てているようです。このように、不正な SALT を与えた場合においてのみ、descrypt.pl と Perl の crypt() の挙動は異なります。

http://www.mikeneko.ne.jp/~lab/perl/des/
8投稿者:  投稿日:2002年06月06日(木)
2. 暗号化に使える文字
すでに理解したように、暗号化には先頭の2文字が必要である。これを乱数で作成しておけば、毎回異なる暗号化が可能になる。
それでは、先頭の2文字として、どのような文字が使えるのであろうか?日本語は2バイトで1文字を表すので、日本語が使えそうもないことは分かる。
使える文字は以下の64文字である。

英小文字(26文字) a, b, ・・・, z
英大文字(26文字) A, B, ・・・, Z
数字(10文字) 0, 1, ・・・, 9
特殊文字(2文字) .(ドット),/(スラッシュ)
合計 64文字

したがって、これらの64文字を乱数で与えるようにプログラムすればよいわけである。

http://home.kanto-gakuin.ac.jp/~ahero/perl/crypt/second.shtml
9投稿者:  投稿日:2002年06月06日(木)
$value = crypt('AAAAAAAA','$1$00');
$fmd5 = ($value =~ /^\$1\$/ and ((crypt('AAAAAAAA',$value) eq $value)) ? 1 : 0);

とすると,MD5が使用可能かどうかチェックできる.$fmd5がtrueなら使用可能.falseなら不可. MD5が使える環境なら,MD5を利用した方が良い.DESより強力なのと,何よりDESでは8文字までと言う制限があるが, MD5ではもっと長い文字列を扱えるらしい.具体的に何文字までかは判らないが.ちなみに,COOL(少なくともmembers6サーバ)ではMD5が使える.

と,MD5が使えれば良いが,念の為DESもチェックをしておく.

http://katsuno.cool.ne.jp/diary/200106.shtml
10投稿者:  投稿日:2002年06月06日(木)
$value = crypt('AAAAAAAA','00');
$fdes = ($value =~ /^[^\$]/ and ((crypt('AAAAAAAA',$value) eq $value)) ? 1 : 0);

とすると,DESが使用可能かチェックできる.$desがtrueで使用可能.場合によってはMD5もDESも使えない場合が在るらしいが,それでもcrypt自体は通るのだろうか?疑問だ.そこら辺まで言及している文書を見てないので,何とも言えない.駱駝本とやらには書いてあるのだろうか?

ちなみに,cryptに送る平文は英数字のみなので,きちんとチェックをした方が良い.

cryptを使う上で,知っておかなければならないMD5とDESの違いは,MD5ではsalt値の先頭に「$1$」を加える事と, DESでは平文が8文字までしか認識しない事ぐらいか.それ以外で特に気をつける点は無いだろう. salt値,平文ともに使える文字は英数字のみと言うのは大前提.

http://katsuno.cool.ne.jp/diary/200106.shtml
11投稿者:  投稿日:2002年06月06日(木)
crypt(passwd, salt)

利用者のパスワードをファイルに保存する際、そのまま保存しておくと危険なので、crypt() で DES による暗号化を行ってから保存するとよい。暗号化したパスワードから元のパスワードを解読することは困難だが、元のパスワードをチェックすることは容易にできる。解読を困難にするために、salt にはドット(.)、スラッシュ(/)を含む2文字の英数文字をランダムに指定する。この2文字は暗号化されたパスワードの最初の2文字となる。2文字目より後ろは無視される。

MD5 がサポートされているシステムでは、salt に、"$1$" で始まる 8文字($1$ を含めて11文字)を指定することにより、MD5 を使用できる。DES よりも安全度が高い。

http://tohoho.wakusei.ne.jp/wwwperl2.htm#crypt
12投稿者:  投稿日:2002年06月06日(木)
Perlの関数「crypt」を使って暗号化します。関数「crypt」の使い方は、以下のとおりです。

crypt(PLAINTEXT, SALT)

「PLAINTEXT」の部分は、暗号化したい文字列です。「SALT」の部分は、大文字・小文字アルファベットと 0 〜 9 の数字、そして、「.(ドット)」「/(スラッシュ)」のいづれか2文字です。「SALT」は、暗号化する際のキーとなるもので、「PLAINTEXT」が文字列でも、「SALT」を変えることによって暗号化文字列が異なってきます。つまり同じ「PLAINTEXT」に対して、4096 通りの暗号化パスワードが生成しうるわけです。

http://www.futomi.com/lecture/htaccess/htpasswd.html
13投稿者:  投稿日:2002年06月06日(木)
パスワードの暗号化

perl の crypt() 関数で暗号が作れます。ただしこれは一方向暗号で、総当たり以外に復号する方法はありません。この暗号は主にパスワードの保存・照合に使われます。つまり、あるパスワードAを crypt() で暗号化して保存しておき、別の時に入力されたパスワードBを crypt() で暗号化して同じ暗号になったらパスワードAとパスワードBは同じだということがわかります(UNIX のパスワード管理もこれと同じ方法です)。
crypt() は2引数で、暗号化した文字列を返します。第一引数が暗号化する文字列、第二引数が暗号化のキーです。暗号化キーは2文字の文字列で暗号化された文字列の最初の2文字はそのキーになります。暗号化キーは2文字以上の文字列でもかまわず、その場合は最初の2文字が使われます。 したがって、以下のようにして作成した暗号で、

$crypted_passwd=crypt($passwd_a,$key);


(crypt($passwd_b,$crypted_passwd) eq $crypted_passwd)

が真ならば、 $passwd_a と $passwd_b は等しいということになります。

http://www.nlp.ie.niigata-u.ac.jp/~hiro/parole/kh.html
14投稿者:  投稿日:2002年06月06日(木)
■crypt( 暗号化したい文字列 , 暗号の種 )

暗号化します。「暗号化したい文字列」はふつう8文字まで、暗号の種は半角数字・アルファベット・"."・"/"の中から適当に2文字を選びだして与えます。
暗号化された文字列のうち、(Linuxなどの場合)最初の二文字が「暗号の種」とまったく同じものになりますので、パスワード照合などの際はユーザーから与えられた文字列をその最初の二文字を種として暗号化し、同じものかどうか比べるのが最も効率的でしょう。

http://hp.vector.co.jp/authors/VA014550/perl/text3-A.html
15投稿者:  投稿日:2002年06月06日(木)
perlでの暗号処理の一般的な記述例(DES方式固定)

$password = "hogehoge"; #暗号化するパスワード
#ランダムになるサルト係数を算出する
$now = time;
($p1, $p2) = unpack("C2", $now);
$wk = $now / (60*60*24*7) + $p1 + $p2 - 8;
@saltset = ('a'..'z','A'..'Z','0'..'9','.','/');
$nsalt = $saltset[$wk % 64] . $saltset[$now % 64];

#$pwdにDESで暗号化された文字列が代入される
$pwd = crypt ($password,$nsalt);


上記スクリプトのMD5方式への修正

$password = "hogehoge"; #暗号化するパスワード

#$pwdにMD5で暗号化された文字列が代入される
$pwd = crypt ($password,'$1$');

補足

MD5で暗号化した場合は、暗号文字列は先頭から3文字が「$1$」で始まります。一方DES方式で暗号化したものの場合は、先頭から2文字(任意の英数字)となります。

これらの違いからサーバーのcryptライブラリがMD5方式のみに対応している場合、DES方式のサルト係数を指定してcrypt関数を実行しても空文字列を返してしまい、暗号時と認証時に問題が発生します。

これらのDES方式固定のCGIスクリプトをMD5方式に変更する場合は、上記例のようにスクリプト内で使用している全てのcrypt関数のサルト係数を「$1$」に置き換える必要があります。

(参考:一般的にDES方式よりもMD5方式のほうが暗号文字列が長い為、セキュリティーにおいて堅牢です。)

http://info.pos.to/member/domain/cgi/crypt.html
16投稿者:  投稿日:2002年06月06日(木)
crypt   crypt STRING, SALT

crypt は、パスワードの暗号化などに使われます。crypt は、第1引数 STRING で指定された文字列の先頭8文字と、第2引数 SALT の2文字をもとに、ユニークな13文字の文字列を生成します。crypt で暗号化された文字列は、元に戻すことができません。

http://www.rfs.co.jp/sitebuilder/perl/func/01.html#crypt
17投稿者:  投稿日:2002年06月06日(木)
crypt(passwd,salt)

利用者のパスワードをファイルに保存する際、そのまま保存しておくと危険なので、crypt()で暗号化してから保存するとよい。暗号化したパスワードから元のパスワードを解読することは(多少)困難だが、元のパスワードをチェックすることは容易にできる。解読を困難にするために、saltにはドット(.)、スラッシュ(/)を含む2文字の英数文字をランダムに指定する。この2文字は暗号化されたパスワードの最初の2文字となる。

# 暗号化したパスワード($epasswd)を得る
srand();
$passwd = "himitsu";
$xx = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
. "abcdefghijklmnopqrstuvwxyz"
. "0123456789./";
$salt = substr($xx, int(rand(64)), 1);
$salt .= substr($xx, int(rand(64)), 1);
$epasswd = crypt($passwd, $salt);
# ファイルには $epasswd だけを保存する

# 暗号化したパスワードでパスワードをチェックする
# 同じ$saltで再度暗号化して同じ結果になればOK
$salt = substr($epasswd, 0, 2);
if ($epasswd eq crypt($passwd, $epasswd)) {
print "Match!!\n";
}

http://tech-web.net/perlmania/kain.html
18投稿者:DES暗号  投稿日:2002年06月06日(木)
http://www.google.com/search?q=DES%88%C3%8D%86&btnG=Google+%8C%9F%8D%F5&hl=ja&safe=off
19投稿者:  投稿日:2002年06月06日(木)
Saltというのは暗号化を強くするために、普通のパスワードファイルの暗号化をさらに複雑に撹乱させるためのものです。ここでは始めから xx という 文字列で置き換えていますが、実際にパスワードを生成する際には 0-9 a-z A-Z . / という64文字の中からランダムに選んで、暗号化を図ります。

つまりパスワードは パスワード文字 + ランダムな2文字 によって暗号化されるのです。

http://members.centillion.jp/x-jack/academy/crypt/1.html
20投稿者:  投稿日:2002年06月06日(木)
で salt_strの配列に一文字づつランダムに選ばれた文字が入ります。選ばれる文字は最初の

 char salt[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/.";


という配列の中から選ばれます。



さて、ここまで来て少し疑問に思ったことは、Saltがランダムに選ばれて毎回違ったパスワードが生成されるのならパスワードクラックの時にも同じパスワード同士を比較できないのではないか?ということだと思います。パスワードが hehehe だとすると、Saltが毎回違うのだから同じ暗号化パスワード文字列は生成されないということです。

暗号化されたパスワードが sd98u23oikjd0f とすると、パスワードクラッカーは辞書にある文字列 、例えばheheheなどをSaltと組み合わせて暗号化文字列を作りsd98u23oikjd0f と照らし合わせて同じならばそのパスワードはheheheであると分かる仕組みになってるのです。しかしそこでSaltが毎回違っていてはクラックできません。それならばジョンなどのパスワードクラッカーやログインなどの認証システムはどうするのか?ということで色々と調べました。

http://members.centillion.jp/x-jack/academy/crypt/2.html
21投稿者:  投稿日:2002年06月06日(木)
$crypted_passwd = stdio::cryptString($passwd);

機能説明 crypt関数を使って文字列を暗号化します。この暗号化は一方通行のため、暗号化された文字列を複合化することはできません。この暗号はUNIX(BASIC認証)のパスワードファイルの暗号と同じです。掲示板等のパスワードは安全のため、暗号化しておくとよいでしょう。

FreeBSDで使われるMD5、一般的なDESの両方に対応しています。両方使える場合は、より強力なMD5が使われます。MD5で暗号化された場合、文字列の頭に"$1$"が付いています。
暗号化の種はランダムな文字列により自動生成されます。DESの場合は2文字、MD5の場合は8文字です。
DESの場合は、最大8文字までとなります。
暗号化できない場合は、元の文字列をそのまま返します。eval関数による例外処理を施しています。

http://www-power.net/cgi/other/library/stdio/reference/encode.html
22投稿者:  投稿日:2002年06月06日(木)
◆ スカラー変数($XXX)

ダラー( $ )で始まる変数はスカラー変数と呼ばれます。スカラー変数には数値や文字列をひとつだけ代入することができます。

$xx = 5; # スカラー変数$xxに数値5を代入します。
$xx = "abc"; # スカラー変数$xxに文字列abcを代入します。
print "$xx\n"; # スカラー変数$xxの値を参照して表示します。

通常、何も初期化していない変数はヌルまたは0として扱われますが、perlの処理系によっては(バグなのか?)ゴミの値になることがあるようですので、最初に $xx = 0; と初期化しておいた方が無難なようです。(1998.8.23追記)

http://tohoho.wakusei.ne.jp/wwwperl1.htm#AboutPerl
23投稿者:  投稿日:2002年06月06日(木)
変数とは、値を保存しておく箱のようなものだ。 Perl には様々な種類の変数があるが、最初に覚えておくべきなのはスカラー変数だ。スカラー変数とは何かというと…、まあ最初のうちは「ふつうの変数」とでも覚えておいてもらいたい。

Perl では、変数名に使える文字は「アルファベット、数字、アンダースコア」に限られている。しかも数字は最初の文字としては使えない。また、スカラー変数の場合は名前の先頭に「$」を付ける。たとえば次のような名前が有効だ。

http://www.srs.ne.jp/~north/nperl/val.html
24投稿者:  投稿日:2002年06月06日(木)
2−7 変数

 私は、この変数を理解するのにかなりの時間がかかりました。最初は、本で覚えようとしましたが、頭の悪い私にはダメでした。それで、この講座でやっているように色々動かしながら疑問をつぶしていきようやく理解できた経験があります。理解すれば、当然かもしれないがそれほど難しいものではなく、便利な機能です。
Perlの変数には、スカラー、配列、連想配列の3つがあります。この変数は、それぞれ先頭に$、@、%のどれかが付くことにより区別されます。この変数の記号の後に名前を付けます。変数の名前の付け方には次のようなルールがあります。

 ・$、@、%の次の文字は、英字(a〜z、A〜Z)又はアンダースコア( _ )で始まる
 ・英字(a〜z、A〜Z)、数字(0〜9)、アンダースコアを使える
 ・文字数の指定、制限はない
 ・大文字と小文字は区別される
 ・スカラー、配列、連想配列で同じ名前を使っても、それぞれ個別に認識される

http://x-web.pobox.ne.jp/fcgi/fcgi_06.html
25投稿者:パスワード安全性チェック  投稿日:2004年07月27日(火)
http://www5e.biglobe.ne.jp/~bbs_etc/cgi-bin/PassChecker/Search.html
26投稿者:CBg  投稿日:2018年02月09日(金)01時18分56秒
BgRsGbrDDDGbrmCBgRsbrIxXpRsuhbrCxKCCCCdbrampH44brACBgRs2018cAHfCbrKSALE_BbrCBghttpwwwgooshop001comwalletbvlist_39_2html
27投稿者:XpRsuh  投稿日:2020年03月17日(火)06時31分09秒
TDDDDDRsbrPuhRskABbrACCCCCCbr__bruhRsNBAWCCgCCBbruhRsrNQA2BBbrPksBbrNGobONGchloeobObrXpRsuhhttpswwwb2kopicomproductdetailaspxid4880
28投稿者:XpRs  投稿日:2020年04月20日(月)10時36分39秒
2019KDHpRsuhRsrbrCBgAVlAObAGXANGAv_AuKAbNXAJebrBGAIKRskuhobOAArBbrXCAAWCCbrNVAobrwkCCbrKgCnuCCbrCCsbrCCCgCBBbrCCXbr2019wbrLOUISVUITTONAGXArbrVABAKNWCkXCCBbrbyAAlWCbrPksBbrOvZCChCsUonklBbrlnon100BPtbrXpRshttpswwwcocoejp1comProductListaspxTypeId078515298787363
29投稿者:uhXpRs  投稿日:2020年05月06日(水)06時57分57秒
uhRsNbruhRsXlCNiIbr2019NViBbriAiAIbrXuhRsvi2NBbrSBbruhXpRshttpswwwyuku006comProductDetailaspxId201909250254553929
30投稿者:XpRs  投稿日:2020年05月07日(木)13時39分04秒
XpRsvNiCuhRsXobOEzbrXpRsXAbNXACEBgAEuAJeBGbrtNEViAi100iBbrXpRsVbvEvEobOEzNiIbruMpvuqlvMOAiliAbrFlyASXpRsiBpSBbrCOXpRsXpRsobOAANZTbrXpRsvAMiTCNijXpRsEbrzyW24tbrXpRshttpswwwcocolv8comonepage5html
31投稿者:bNXvRs  投稿日:2020年05月10日(日)08時07分03秒
XpRsuhvXbr2019NlCivRsAuhrvRsVbriAiBbrCOcXtIbriiiIVqIbr2019NJCSi10brXVbrAtiBbr100BbrSbrqDbrocjidAAMpIbrvixbrbNXvRshttpswwwcocolv020comwatchproduct20887html
32投稿者:Uuh  投稿日:2020年05月13日(水)18時05分35秒
XVbruMpvbgqlAbrzpAiAAbrbrbrAtibrIiivbrbrUuhhttpswwwyutoozcomprotypelist218html
投稿者 メール
レス全部を見る 掲示板に戻る