001 /*
002 * Copyright (c) 2009 The openGion Project.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
013 * either express or implied. See the License for the specific language
014 * governing permissions and limitations under the License.
015 */
016 package org.opengion.plugin.column;
017
018 import org.opengion.fukurou.security.HybsCryptography;
019 import org.opengion.fukurou.util.StringUtil;
020 import org.opengion.hayabusa.db.AbstractDBType;
021
022 /**
023 * パスワード情報など?要な??のハッシュコー?MD5)を扱?の、カラ??を定義します?
024 *
025 * パスワード情報など?要な??のハッシュコードに、MD5 があります?こ?クラスは?
026 * MessageDigestにより、MD5 でハッシュした?を作?します?
027 * 値としては、標準? X と同じ半角文字??c < 0x20 || c > 0x7e 以外?でのみ
028 * 処?ることが?来ます?
029 *
030 * タイプチェ?として、以下?条件を判定します?
031 * ・??長は、Byte換算での?数との比?
032 * ・半角文字?チェ??c < 0x20 || c > 0x7e 以外?エラー
033 * ・?パラメータの 正規表現チェ?
034 * ・クロスサイトスクリプティングチェ?
035 *
036 * @og.group ??タ属?
037 *
038 * @version 4.0
039 * @author Kazuhiko Hasegawa
040 * @since JDK5.0,
041 */
042 public class DBType_MD5 extends AbstractDBType {
043 //* こ?プログラ??VERSION??を設定します? {@value} */
044 private static final String VERSION = "5.2.2.0 (2010/11/01)" ;
045
046 /**
047 * String引数の??を+1した文字?を返します?
048 * ※ こ?クラスでは実?れて?せん?
049 *
050 * @param value String引数の??
051 * @throws UnsupportedOperationException こ?クラスを実行すると、?発生します?
052 *
053 * @return String引数の??を+1した文字?
054 */
055 @Override
056 public String valueAdd( final String value ) {
057 String errMsg = "こ?メソ?は、このクラスからは使用できません?;
058 throw new UnsupportedOperationException( errMsg );
059 }
060
061 /**
062 * MessageDigestにより、MD5 でハッシュした?を返します?
063 *
064 * MD5で?5Byteのバイトに変換されますが、ここでは、?イナス時には,
065 * 符号を反転させて?6?数で??に変換して?す?
066 * よって、このメソ?で変換した?でのみ突き合わせて正しいかど??
067 * 判断してください?
068 *
069 * @og.rev 3.3.3.0 (2003/07/09) 前後?スペ?スを取り除?おく?
070 * @og.rev 3.3.3.1 (2003/07/18) 後ろスペ?スを取り除く?(StringUtil#rTrim)
071 * @og.rev 5.2.2.0 (2010/11/01) util.StringUtil から security.HybsCryptography へ移?
072 *
073 * @param value (?に編?ータとして登録されたデータ)
074 *
075 * @return 修正後???(?に??タベ?スに登録する??タ)
076 */
077 @Override
078 public String valueSet( final String value ) {
079 // return StringUtil.getMD5( StringUtil.rTrim( value ) );
080 return HybsCryptography.getMD5( StringUtil.rTrim( value ) ); // 5.2.2.0 (2010/11/01) クラス変更
081 }
082 }