忍者ブログ
Flex,Java,Html など、調べた事のメモ帳です。 間違ってたらゴメンなさい。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

秘密鍵暗号化方式で暗号化

javax.crypto パッケージを使って、文字列を暗号化して同じ鍵を使用して復号化します。 秘密鍵の生成には KeyGenerator の generateKey() を使用し、暗号化、復号化には Cipher の doFinal を使用します。

以下にアルゴリズムに AES を使用した場合の暗号化、復号化の実装例を書きます。


	

コード記述例

public static void main(String[] args) {
    try {
        SecretKey key = KeyGenerator.getInstance("AES").generateKey();
        Cipher aes = Cipher.getInstance("AES");
        HexDumpEncoder enc = new HexDumpEncoder();
        byte[] text = "暗号化テスト".getBytes();
        System.out.println(enc.encode(text));
 
        // 暗号化
        aes.init(Cipher.ENCRYPT_MODE, key);
        byte[] encryptText = aes.doFinal(text);
        System.out.println(enc.encode(encryptText));
 
        // 複合化
        aes.init(Cipher.DECRYPT_MODE, key);
        byte[] decryptText = aes.doFinal(encryptText);
        System.out.println(enc.encode(decryptText));
    } catch (Exception e) {
        e.printStackTrace();
    }
}
 

 

出力結果


上から順に 元テキスト → 暗号化配列 → 復元されたテキスト です。

	
0000: 88 C3 8D 86 89 BB 83 65 83 58 83 67
0000: EF A2 F1 18 3A B6 7D 16 7B 89 F9 E3 27 4B 48 F4 ....:.......'KH.
0000: 88 C3 8D 86 89 BB 83 65 83 58 83 67
 

URL に proxy 経由で接続する

Java で proxy 経由でURLに接続する方法について解説します。

proxy 経由で接続するには System の property に次の情報を設定する必要があります。

  • proxySet ---- proxy を使用するかどうか
  • proxyHost ---- proxy のホスト名
  • proxyPort ---- proxy のポート番号

起動オプションとして指定する場合


java -DproxySet=true -DproxyHost=<ホスト名> -DproxyPort=<ポート番号> <クラス名>

ソース中に記述する場合

public static void main(String[] args) {
    System.setProperty("proxySet", "true");
    System.setProperty("proxyHost", "ホスト名");
    System.setProperty("proxyPort", "ポート番号");
    try {
        URL url = new URL("http://himtodo.fc2web.com");
        BufferedReader in = new BufferedReader(new InputStreamReader(url
            .openStream()));
        String line;
        while ((line = in.readLine()) != null) {
            System.out.println(line);
        }
        in.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
 



クライアント証明書

SSL が有効な場合に Servlet でクライアント証明書を取得するには、 リクエストがセキュアでなければいけません。 セキュアか否かの確認には、ServletRequest#isSecure() を使います。 その上で、リクエストの属性に設定されているクライアント証明書を取得します。


ソース記述例

if (request.isSecure()) {
    X509Certificate[] certList = (X509Certificate[])request
        .getAttribute("javax.servlet.request.X509Certificate");
    if (certList != null) {
        for (int i = 0; i < certList.length; i++) {
            Principal userDN = certList[0].getSubjectDN();
            System.out.println(userDN);
         }
    }
}



まずは、「jquery-tubular」のダウンロードページから最新のjquery.tubular.jsをダウンロードします。

<head>部分にJavaScriptとcssの設定をします。

<link href=”css/screen.css” rel=”stylesheet” type=”text/css” />
<script type=”text/javascript” charset=”utf-8″ src=”http://ajax.googleapis.com/ajax/libs/swfobject/2.1/swfobject.js”></script>
<script type=”text/javascript” charset=”utf-8″ src=”http://code.jquery.com/jquery-1.4.3.min.js”></script>
<script type=”text/javascript” charset=”utf-8″ src=”js/jquery.tubular.js”></script>

と設定します。さらに

<script>
$(function(){
$(‘body’).tubular(‘SHRUT_FpMBs‘  //YouTube動画のID
,’backmovie‘);       //表示するためのID
});
</script>

で、YouTube動画のIDと表示する要素IDを指定します。
YouTube動画のIDは、YouTube動画のページから【共有】ボタンをおしたところで確認できます。

ちなみに動作を確認するときは、サーバーにアップして確認します。ローカル環境のなかではYouTubeは実行されないようです。


リストを横並びにしてセンタリングというのはよく使う。ただよく使う(われる)わりには「これ!」というようなテクニックがないような気がする。inline-blockで並べた場合は項目の間に隙間ができ、floatで並べた場合はセンタリングがトリッキーすぎる。気分で色々使い分けてたけど最近はdisplay: inline-tableをよく使うようになって、これで良いかなーという感じ。

<nav class="paging">
  <ul>
    <li><a href="foo">Prev</a></li>
    <li><a href="bar">Next</a></li>
  </ul>
</nav>

というようなマークアップの一般的なページング・ナビゲーションだと、

.paging {
  text-align: center;
}

.paging ul {
  display: inline-table;
}

.paging li {
  display: table-cell;
}

という形で行う。display: tableだと幅が明示されてないとセンタリングできないのでinline-tableのが手軽で良い。.pagingのようなラッパー要素がないと実現できないのでマークアップに依存するというのが一番大きな欠点。

前のページ      次のページ
ブログランキング
にほんブログ村 IT技術ブログ IT技術メモへ
 
カレンダー
12 2025/01 02
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
人気ブログランキング
ブログランキング ブログランキング
最新TB
ブログ内検索
PR
ATOM  
ATOM 
RSS  
RSS 
Copyright ©   プログラムメモ   All Rights Reserved
Design by MMIT  Powered by NINJA TOOLS
忍者ブログ [PR]