★★ Java の宿題ここで答えます Part 67 ★★の737 †
/* 普通の暗号化は大丈夫だそうなのでキモだけ */
/**
* 与えられた平文と暗号鍵を元に暗号化処理を行う。
* @param source 平文
* @param cryptKey 暗号鍵
* @return 暗号文
*/
public static String encrypt(final String source, final int cryptKey) {
// 引数チェック
if (source == null || source.length() == 0) {
throw new IllegalArgumentException("Source String is null or empty.");
}
if (cryptKey < 10 || 99 < cryptKey) {
throw new IllegalArgumentException("cryptKey is less than 10 or more than 99.");
}
final char START_CHAR = '!';
final char END_CHAR = 'z';
// 奇数の暗号鍵(10で割って切り捨て)
final int ODD_KEY = (int) Math.floor(cryptKey / 10);
// 偶数の暗号鍵(剰余)
final int EVEN_KEY = cryptKey % 10;
char[] work = source.toCharArray();
for (int i = 0; i < work.length; i++) {
// n文字目が偶数ならEVEN_KEYを加え、奇数ならODD_KEYを加える。
work[i] += ( (i+1) % 2 == 0 ) ? EVEN_KEY : ODD_KEY;
if (work[i] > END_CHAR) {
// 使用可能文字の範囲を超えたら最初の文字まで戻す。
work[i] = (char) (work[i] - END_CHAR + START_CHAR -1);
}
}
return String.copyValueOf(work);
}
/* ソースここまで */
CONTENTS
最新の20件
2020-11-14
2005-12-06
2006-11-04
2012-07-15
2009-06-19
- ★★ Java の宿題ここで答えます Part 67 ★★の737
2011-03-03
2006-12-13
2007-11-05
2014-07-22
2014-07-19
2014-07-09
2014-01-14
2012-09-03
2012-03-28
今日の20件
人気の30件
- counter: 2458
- today: 2
- yesterday: 0
- online: 1