2011年10月07日


JavaScriptのライブラリ( crypto-js )を利用して、UTF-8 限定の Base64エンコード

crypto-js - Google Project Hosting

そのままでは、ブラウザ上で使う事が前提になっているので、window オブジェクトを
通常の変数に差し替える必要があります。

crypto-min.js をテキストエディタで開いて、window.Crypto を Crypto に変更します。
その後、先頭に以下のコードを付加すると使用できるようになります。

var Crypto;

( ▼ かなり前のバージョンの画像ですが、現在も同じです )
Crypto

データの処理には、charCodeAt を使っていますが、JavaScript の環境ではかなり
面倒な事をしないと UTF-8 以外のキャラクタセットは難しいと思います。どうしても
必要な場合は、VB または C# で作成して COM として公開する必要があると思います。
( 環境が限定されますが、VBScript : ネイティブ Base64 エンコード でも可能です )

base64.wsf
<job>
<script language="JavaScript" src="crypto-min.js"></script> 
<script language="JavaScript"> 
// *********************************************************
// crypto-js のラッパー
// *********************************************************
function bytesToBase64(data) {
	return Crypto.util.bytesToBase64(data); 
}

function stringToBytes(data) {
	return Crypto.charenc.UTF8.stringToBytes(data)
}
</script>

<script language="VBScript">
' *********************************************************
' VBScript から呼び出す為の関数
' *********************************************************
Function ConvertBase64(data)

	ConvertBase64 = bytesToBase64(stringToBytes(data))

End Function

' crypto-js
Wscript.Echo ConvertBase64( "あいうえおABCD" )

' 以降は CAPICOM
Set CAPIUtil = WScript.CreateObject( "CAPICOM.Utilities" )

Set Stream = CreateObject("ADODB.Stream")
Set StreamBin = CreateObject("ADODB.Stream")

Stream.Open
Stream.Charset = "utf-8"
Stream.WriteText "あいうえおABCD"
Stream.Position = 0

' バイナリで開く
StreamBin.Open
StreamBin.Type = 1

' テキストをバイナリに変換
Stream.CopyTo StreamBin
Stream.Close

' 読み込みの為にデータポインタを先頭にセット
StreamBin.Position = 0

' 変換
StreamBin.Read(3) ' BOM を取り去る
strBinaryString = CAPIUtil.ByteArrayToBinaryString( StreamBin.Read ) 
strBase64 = CAPIUtil.Base64Encode( strBinaryString ) 

' 表示
Wscript.Echo strBase64

</script>
</job>


CAPICOM : Utilities object (Windows)
CAPICOM : ダウンロード詳細 Platform SDK Redistributable
CAPICOM is a 32-bit only component that is available for use in the
following operating systems: Windows Server 2008, Windows Vista,
Windows XP,and Windows 2000. Instead,
use the .NET Framework to implement security features
タグ:javascript Base64
posted by at 21:18 | Comment(0) | JavaScript利用 | このブログの読者になる | 更新情報をチェックする


この記事へのコメント
コメントを書く
お名前:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。