ページ

2011年1月24日月曜日

[code] RSA暗号の学習

このエントリーをはてなブックマークに追加

// 平文 (法を超えることは許されない、法と同値は許されない)
A1 = 7, A2 = 24

// 素数
Q = 3, P = 11

// 法
N = Q * P = 33

// 公開鍵
E = 3

//============================================
// 暗号化 :
// 公開鍵の整数分だけ計算を繰り返す
// (なぜ?32bitの領域を超えると困るので)
//============================================
B1 = ((A1 * A1) mod N) * A1 mod N = 13
B2 = ((A2 * A2) mod N) * A2 mod N = 30

//============================================
// 秘密鍵の生成 :
/============================================
D = (1 * (Q - 1) * (P - 1) + 1) / E = 7

OR

// N = {1, 3, 11, 33} この4つと互いに素な数値の個数を求める
// φ(N) = {1,2,4,5,7,8,10,13,14,16,17,
// 19,20,23,25,26,28,29,31,32}
// もしNが素数ならば φ(N) = N - 1
φ(N) = (Q - 1) * (P - 1) = 20
E * D ≡ 1 (mod 20)
D = 7

//===========================================
// 複合化
// 暗号鍵の整数分だけ計算を繰り返す
// (なぜ?32bitの領域を超えると困るので)
//===========================================
((((((B1 * B1) mod N) * B1 mod N) * B1 mod N) * B1 mod N) * B1 mod N) * B1 mod N = 7 = A1
((((((B2 * B2) mod N) * B2 mod N) * B2 mod N) * B2 mod N) * B2 mod N) * B2 mod N = 24 = A2


参考 :
サルにもわかるRSA暗号、
http://www.maitou.gr.jp/rsa/rsa01.php

暗号化アルゴリズム、
http://fussy.web.fc2.com/algo/algo9-3.htm

2011年1月15日土曜日

[windows] [UAC] [VC++] 管理者権限を与える。

このエントリーをはてなブックマークに追加

/MANIFESTUAC (UAC 情報をマニフェストに組み込む) :
http://msdn.microsoft.com/ja-jp/library/bb384691.aspx
を参考にUAC Level(リンカ マニュフェストファイルを開く)を上昇させて以下のテストコードを組んでみた。

//===============================================
// test.cpp
//===============================================

#include<iostream>
#include<string>

int main(){

FILE * fp;
std::string buf = "ABCDEF";

fopen_s(&fp, "C:\\Program Files\\test", "wb");
fwrite(buf.c_str(), 1, buf.length(), fp);
fclose(fp);

system("pause");

return 0;

}

//===============================================
// 結果
//===============================================

Release版のEXEを起動した結果、見事にProgram Files内にファイルを書き込むことができた。

2011年1月14日金曜日

[windows] [gadget] Google Language API を利用したWindows Gadgetを公開

このエントリーをはてなブックマークに追加

06/2010 頃に作成した翻訳ガジェットが埋れていたのでSource付きで公開しました。 サンプル画像

downlaod : http://www21.atpages.jp/~lyrycal/download.html

・Virusチェック or MD5を参照してください。

by Raisana.

2011年1月13日木曜日

[BMP] [PNG] [GIF] 可逆型でも有効bit数を変えると劣化する

このエントリーをはてなブックマークに追加

今回はtest.bmp(24bit)を作成して他の可逆型のフォーマット(PNG, GIF)にエンコードしてからデコードした。

予想 : 有効bit数が変化すると劣化すると予想した。


1. BMP(24bit) → PNG(24bit) → BMP(24bit) このタスクは画像が劣化しなかった。(BMPのエンコードする前のバイナリとデコードする前のバイナリは等しい)

2. BMP(24bit) → GIF(8bit) → BMP(8bit) このタスクは画像が劣化した。(BMPのエンコードする前のバイナリとデコードする前のバイナリは等しくはない。)


結論 : 可逆型でも有効bit数を変えると劣化するという予想通りの結果である。

実験の為に作成した画像(BMP, PNG, GIF)はこちら
ちなみに、今回作成した画像はバイナリを見てもらえばわかる通り、1pixel毎にすべての色が違う。

2011年1月11日火曜日

[windows] [bat] [console] コンソールからサービスの開始・停止・自動・手動・無効

このエントリーをはてなブックマークに追加

//==============================================
// 開始・停止しているサービスの閲覧
//===============================================
// 開始
net start
// 停止
net stop


//===============================================
// サービスの自動・手動・無効(start= X 符号と値の間のスペースは必須)
//===============================================
// 自動
sc config mysql start= auto
// 手動
sc config Apache2.2 start= demand
// 無効
sc config Apache2.2 start= disabled


//=============================================
// mysqlとapacheの起動 && 停止 batファイルの作成
//=============================================
// start.bat
sc start Apache2.2
sc start mysql

// stop.bat
sc stop Apache2.2
sc stop mysql

# batファイルを実行する場合は管理者権限で起動してくだい。

参考 : Sc.exe を使用して Windows サービスを作成する方法 - http://support.microsoft.com/kb/251192/ja

2011年1月10日月曜日

[windows] [php] [Apache] timezone error

このエントリーをはてなブックマークに追加

(php.ini)
; date.timezone= とコメントアウトされているのでコメントアウトを取って、

date.timezone="Asia/Tokyo" とする。

[windows] [php] [Apache] PEARのインストール

このエントリーをはてなブックマークに追加

PHPディレクトリ内にあるgo-pear.batをコマンドプロンプトから起動(インストール時にpearの項目のチェックを外した場合go-pear.batがないかもしれません)

1. コマンドプロンプトを管理者権限で起動
2. go-pear.batを起動
3. 後はEnter or Y を押すだけ


//============================================
// go-pear.batが存在しない場合
//============================================
php.iniの文末に
include_path=".;C:\Program Files\PHP\PEAR"
を追加

XAMPP.zipなどにPEARが入っているのでそれを拝借して、php.exeのあるディレクトリにPEARディレクトリを入れます。(XAMPPのPEARに入っている必要の無いパッケージはいりません。)

[widows] Apache 2.2 && PHP 5.3.5 && MYSQL && phpMyAdmin 導入

このエントリーをはてなブックマークに追加

2011/01/10 現在

//===============================================
// Aache 2.2 Install
//===============================================
1. http://httpd.apache.org/download.cgi
2. Apache 2.2 をインストールする。(httpd-2.2.17-win32-x86-no_ssl.msi)
3. C:\Program Files\Apache Software Foundation\Apache2.2 にインストールされる


//===============================================
// PHP 5.3.5 Install
//===============================================
1. http://windows.php.net/download/のVC9 x86 Thread SafeのInstallerをクリック
2. PHP 5.3.5 をインストールする(すべて次へでokay)
3. C:\Program Files\PHP にインストールされる
4. C:\Program Files\PHP\php.iniを開き、display_errors = off を display_errors = on にする。(offだとエラーコードを見ることができません。グローバル公開するときにoffにすれば良いです。(Apacheを再起動しないと適応されません。))


//===============================================
// ApacheでPHPを利用出来るようにする
//===============================================
C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf の末尾に以下を記述する。

PHPIniDir "C:/Program Files/PHP"
LoadModule php5_module "C:/Program Files/PHP/php5apache2_2.dll"

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

//===============================================
// ディレクトリを指定されたときにファイルを読み込む
//===============================================
240行目あたりにある DirectoryIndex index.html を DirectoryIndex index.php index.html とする。

<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

# すべて終わったらApacheを再起動してください。



/************************************************
/* ここからは必要な方だけ実行してください
************************************************/

//===============================================
// 使用するポートを変更する
//===============================================
45行目あたりの Listen 80 を Listen X 変更する(Xは使用したいport number)



/************************************************
/* MYSQL, phpMyAdmin
************************************************/
MYSQL : http://dev.mysql.com/downloads/mysql/ (インストールのオプションは好きなものを選ぶ)

phpMyAdmin : http://www.phpmyadmin.net/home_page/index.php
展開したディレクトリをhtdocsにいれて接続すればブラウザ上からMYSQLをいじることができます。(コマンドプロンプトからSQLをいじったほうが早いです。mysql > mysql.exe -u root -p)


参考 : Windows+Apache+PHP環境構築 - http://www.yc.tcu.ac.jp/~yamada/doc/win_php/0202.html

2011年1月7日金曜日

[php] phpから実行ファイルを扱う

このエントリーをはてなブックマークに追加

//==============================================
// source (sample.php)
//==============================================

<?php

// コマンドプロンプトの最後の行の文字列を引数として返す
$return = "";
// シェルコマンドの戻り値
$shell = "";
// code.exeはhttp://www21.atpages.jp/lyrycal/download.html参照
$return = system("code sample.php",$shell);

?>

//=============================================
// result
//=============================================

{鮏テ�ムs 76裔ヒ~Zヤ;ヌP6iキキ廳 7 醋 ソH yV �茎 jヨユXフタ%空�増 廱ノ ル チョ m8$蕁サニ Z「k 復'テrァ叛4モ險ヤ@[)W# �隔ネhス三2ト( ?Sb ) 0lt躁3カAナサ胤 zkm ア゚D8フ! ニ~0XA1M キ cー[ホ マ]ァ

参考 : http://php.net/manual/ja/function.system.php