2015年7月12日日曜日

Kanamozic

ブログ書くの久しぶりです! この前の投稿から約1年(8ヶ月)も経ってました...
というのはさておき、Kanamozicってのを作ってみましたw


Android
APK:https://drive.google.com/file/d/0BwmjxbaUsYbeUzJYRHNwdDk1ZFE/edit?usp=docslist_api
ソースコード:https://github.com/nao20010128nao/Kanamozic
※ソースコードのこれちゃんと改造すればPCでも動かせます。おそらく(encodeBase64とdecodeBase64がAndroid依存コードなので...)

Javascript(HTML向け)
ソースコード:https://github.com/nao20010128nao/Kanamozic.js
デモ:http://nao20010128nao.github.io/kanamozic/

.NET Framework(Windows)
ソースコード:https://github.com/nao20010128nao/Kanamozic.NET (まだ手をつけてない)


仕様
変換
入力は変換する文字列(string)とkey(byte)
  1. 入力された文字列が、次の文字だけで構成されているかを調べる:"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをんアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン"
  2. 1.で"はい"の場合(ここから)
  3. 1.の文字列から、入力の一文字ごとにその場所を探し、その場所にkeyを足す
  4. 3.の場所を1.の文字列に照らし合わせ、それを一つの文字列にする
  5. 4.の最初に"が"を足して完了
  6. 1.で"いいえ"の場合(ここから)
  7. 入力された文字列を、UTF-8のBase64文字列にし(パディング、改行文字なし)、対応する文字に変換する(対応する文字はコードを参照)
  8. 4.の最初に"ぎ"を足して完了
復号
入力は復号する文字列(string)とkey(byte)
定数A="あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをんアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン"
  1. 入力された文字列が、"が"か"ぎ"で始まるか調べる
  2. 1.で"が"の場合(ここから)
  3. 定数Aから、入力の一文字ごとにその場所を探し、その場所からkeyを引く
  4. 3.の場所を定数Aに照らし合わせ、それを一つの文字列にする
  5. 完了
  6. 1.で"ぎ"の場合(ここから)
  7. 入力された文字列を、対応する文字に変換し、(対応する文字はコードを参照)Base64文字列にする
  8. 7.のBase64文字列を、byte配列にし、UTF-8で文字列に変換する
  9. 完了
なんかおかしい

どうでも良い裏話


Javascript版はJavaコードからほとんどコピペして作ってた