>>5022 たろう 共有メモリなどのプロセス間通信は、同一サーバ内のプロセスで データをやりとりする仕組みで、他サーバとはやりとりができません (とはいえ MySQL や PostgreSQL なども使っている重要な機能ですが)。 複数クライアントからの情報をサーバ内で効率よく共有するためには 役立つのは確かでしょうが、多くのマシンで連携するクラウドばやりの 昨今では、学習の方向性としてはちょっとずれているかもしれません。 |
68userさん はじめまして、鈴木と申します。 SSLクライアント接続のプログラムを作成していた友人から 「SSL_connect() を実行すると -1 が返る。」という相談を受けて、調べている中で、 68userさんの下記ページの、RAND_seed() の説明で解決することができました。 http://x68000.q-e-d.net/~68user/net/ssl-1.html 本当にありがとうございました。 今回、書き込みさせていただいたのは、その続きなのですが もし、ご存知でしたら教えていただけないでしょうか。 【質問の内容】 (1)XPでは、RAND_seed()を実行しなくても、乱数の種が不足することはないのでしょうか? (2)ユーザプログラムでRAND_seed()実行しない場合、OpenSSLは、OS(Windows)からどのようにして 乱数の種を取得するのでしょうか? 以下に、質問に至った経緯を記します。 【友人との話の経緯】 当初、前述の友人が作成したRAND_seed()していないSSLクライアントプログラムを 私の環境(WindowsXP Pro(SP2))で実行しても、SSL_connect()ではエラー(-1)は 発生しませんでした。 友人の環境を確認するとWindowsNT4.0ワークステーション(SP3)でした。 どうしても、この古い環境でSSLクライアント接続のプログラムを動かしたいとのこと。 結局、友人の環境(WindowsNT4.0ワークステーション(SP3))では発生しますが、 私の環境(WindowsXP Pro(SP2))では100回ほどテストしましたが発生しませんでした。 【試した内容】 前述の内容を下記にまとめます。 (友人の環境) WindowsNT4.0ワークステーション(SP3):× SSL_connect() ⇒ (-1)が返る (私の環境) WindowsXP Professional(SP2) :○ SSL_connect() ⇒ 正常 どちらも、PCの電源オン後に自動ログインして、SSLクライアントプログラムを 自動起動するようにしています。 使っているOpenSSLのバージョンは私も友人も0.9.8Gです。 という経緯があって、以下の点についてご存じであれば教えていただけないでしょうか。 ・XPでは、RAND_seed()を実行しなくても、乱数の種が不足することはないのでしょうか? ・ユーザプログラムでRAND_seed()実行しない場合、OpenSSLは、OS(Windows)からどのようにして 乱数の種を取得するのでしょうか? 何卒よろしくお願い致します。 |
>>5024 鈴木 Windows に詳しくないので直接の回答はできませんが、 - 前提として、RAND_poll(3) は呼んでいますか? - プログラムの各部分に RAND_status(3) を実行し、 seed の状況を確認することで、何を行うと十分な seed がたまるか確認できるのではないでしょうか。 - Windows 用の RAND_poll(3) や RAND_add(3) のソースは http://cvs.openssl.org/fileview?f=openssl/crypto/rand/rand_win.c&v=1.46 にありますので、眺めてみてはどうでしょうか。 - RAND_seed(3) は最終的には RAND_add(3) を呼ぶ…と思うのですが、 ソースを見てもそのつながりがよくわかりませんでした。 と思いました。 |
UNIXの初歩的なことですみません。 UNIXで、viを使用するときシェルの環境変数の設定などは 必要なのでしょうか。 cronを編集しようとして、「crontab -e」を実行したの ですが、正しく表示されませんでした。 「crontab -l」では、正しく見れます。 環境変数のEDITORに、”vi”を設定し、「crontab -e」を 行うと、正しく表示されます。 ここでなのですが、unixにログインし、コマンドラインから、 viを起動すると問題なく使用できるのですが、ログインの場合 環境変数のEDITORは関係ないのでしょうか。 それとも、そういうものなのでしょうか。 環境は、 solaris8 bシェル |
>>5027 sep 環境変数 EDITOR は、単に vi(vi コマンド)を使用する場合には 必要ありません。 crontab コマンドのように、エディタを選択できるプログラムが 参照します。 http://x68000.q-e-d.net/~68user/unix/environment.html#EDITOR なお、crontab コマンドでは、EDITOR が設定されていない場合は ed コマンドで編集画面が開きます。 |
はじめまして POP3 クライアントを作ってみよう(3) のページにて > APOP はその原理上、必ずサーバ側に生パスワードを保存しておく必要があります。... > CRAM-MD5 や CRAM-SHA などの認証方法がありますが、サーバ側に生パスワードを保存しておく必要はありません。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ とありますが、CRAM-MD5 (や DIGEST-MD5) は生パスワードを サーバ側が保持していなければならないと理解しておりましたが如何でしょうか? サーバーは,認証の際に 「クライアントから受信した文字列(暗号化済み)」と, 「送信したChallengeコードと(サーバー側の)『ユーザのパスワード』をMD5で暗号化したもの」を 比較する必要がありますので...。 |
ご指摘ありがとうございます。勘違いしていたようです。 以下のように修正いたしました。 http://x68000.q-e-d.net/~68user/net/pop3-3.html - 一方 IMAP というプロトコルには APOP と似た認証の仕組みとして、 - CRAM-MD5 や CRAM-SHA などの認証方法がありますが、サーバ側に - 生パスワードを保存しておく必要はありません。 + SMTP や IMAP には APOP と似た認証の仕組みとして、CRAM-MD5 や、 + それを改善した DIGEST-MD5 などの認証方法がありますが、こちらも + 同様にサーバ側に生パスワードを保存する必要があります。 |
管理人様、失礼いたします。 この度、私の運営する掲示板への度重なるスパム書き込みに対する対策を行っております。 つきましては、せっかくなら私のサイトだけに囚われず 一般の皆様にも使用していただけた方が良いかと思い 絶対に荒らされない掲示板サービスを立ち上げようと考えております。 スパムに悩まされない掲示板に興味が御座いますでしょうか? また、使っていただける皆様と共同して随時機能を追加して参ります。 掲示板サービスに対するご要望があれば、 下記のメールアドレスにご連絡いただければ 追って準備が整い次第、お知らせをさせていただきます。 掲示板サービス以外のメールは、一切送信いたしません。 antispambbs@gmail.com それでは、貴重なスペースをありがとう御座いました。 書き込み内容がサイト内容とそぐわない場合は、 大変お手数ですが削除いただきますようお願いいたします。 失礼いたします。 |
Bシェルで、whileとreadを使ったファイルからの読み込み について教えてください。 while文の中の変数をwhile文の外で使いたいのですが、 以下の様に、whileとreadを使ってファイルから読み込み doをdoneの間で処理を行い、ループを抜けた後、doneの 後ろで、結果を表示させたのですが、正しく表示されません。 どうしたら正しく表示されますか。 環境 Solaris8 Bシェル --------------------------------------------------------- #!/bin/sh # num=0 while read line ; do echo $line num=`expr $line + $num` done < a.txt echo "-----" echo $num cat a.txt 1 2 3 4 5 6 7 8 9 10 |
Bシェルで、sedを使って、2行を1行にしているのですが上手く行きません。 改行している次の行で、半角スペースから始まっている行を、sedを使って 1行にしたいのです。 sed -e ':loop' -e '$b' -e 'N;/\n /{s/\n *//;b loop' -e '};P;D;b loop' file.txt としたのですが、最初に引っかかったのは、1行になるのですが、 それ以降のものは、1行になりません。 環境 Solaris8 Bシェル 内容 --------- [Fri Jan 1 00:00:00] 開始 [Fri Jan 1 00:00:00] INFO:あいうえお abcdefg [Fri Jan 1 00:00:00] INFO:あいうえお 1234567890 [Fri Jan 1 00:00:00] INFO:あいうえお aaaaaaa bbbbbb cccccc [Fri Jan 1 00:00:00] INFO:あいうえお ABC 1234 [Fri Jan 1 00:00:00] INFO:12345 [Fri Jan 1 00:00:00] INFO:ABCDE [Fri Jan 1 00:00:00] INFO:あいうえお [Fri Jan 1 00:00:00] 終了 期待する結果 ---------- [Fri Jan 1 00:00:00] 開始 [Fri Jan 1 00:00:00] INFO:あいうえお abcdefg [Fri Jan 1 00:00:00] INFO:あいうえお 1234567890 [Fri Jan 1 00:00:00] INFO:あいうえお aaaaaaa bbbbbb cccccc [Fri Jan 1 00:00:00] INFO:あいうえお ABC 1234 [Fri Jan 1 00:00:00] INFO:12345 [Fri Jan 1 00:00:00] INFO:ABCDE [Fri Jan 1 00:00:00] INFO:あいうえお [Fri Jan 1 00:00:00] 終了 実際の結果 --------- [Fri Jan 1 00:00:00] 開始 [Fri Jan 1 00:00:00] INFO:あいうえお abcdefg [Fri Jan 1 00:00:00] INFO:あいうえお 1234567890 [Fri Jan 1 00:00:00] INFO:あいうえお aaaaaaa bbbbbb cccccc [Fri Jan 1 00:00:00] INFO:あいうえお ABC 1234 [Fri Jan 1 00:00:00] INFO:12345 [Fri Jan 1 00:00:00] INFO:ABCDE [Fri Jan 1 00:00:00] INFO:あいうえお [Fri Jan 1 00:00:00] 終了 となります。 期待する結果を得たいのですが、どうすればよいですか。 |
>>5040 あきもと >>4776 zsh を参照してください。 >>5041 おう sed -e '$!N; s/\n \{1,\}//; P; D' file.txt でどうでしょうか? |
管理人さんへ 『User-Agent 統計』のページ (http://x68000.q-e-d.net/~68user/cgi-bin/view-browser.cgi) が『エラー : 内部エラーが起こりました。』となっているので お知らせします。 |