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.util.StringUtil;
019 import org.opengion.fukurou.security.HybsCryptography ;
020 import org.opengion.hayabusa.db.AbstractDBType;
021
022 /**
023 * 半è§?全角混在のä¸?ˆ¬çš?�ª制限ã?なã�?š—号化されたæ–?—å?を扱ã�?‚ºの、カラãƒ?±žæ?を定義しますã?
024 *
025 * ログイン認証のパスワードなどは、MD5などのハッシュコードに変換する方式が使えますã?
026 * これはã€?�ž可é€?¤‰換なので、変換後ã?æ–?—å?は、å?に戻すことは出来ませんã€?
027 * ä¸?ˆ¬には、この非可é€?¤‰換が使用できるのであれば、漏洩に対しては安å?ですã?
028 * こã?クラスの暗号化ã?秘å¯?‚ーによる可é€?¤‰換なので、変換方式と秘å¯?‚ーが判ると
029 * å…?�«戻すことが可能ですã?それでもã?何もしなã�?‚ˆりã?はるかにましですã?
030 * ãƒ??タベã?ス等へ登録したãƒ??タを戻して利用したã�?�Œ、そのまま抜き出されるã?は
031 * 困るå?合に、使用できますã?
032 * なおã?暗号化するためã?å…?ƒ‡ータの整合æ?ではなく暗号化された後ã?ãƒ??タでの整合æ?ã�?
033 * チェãƒ?‚¯されますã?
034 *
035 * @og.rev 4.0.0.0 (2005/08/31) 新規作æ?
036 * @og.group ãƒ??タ属æ?
037 *
038 * @version 4.0
039 * @author Kazuhiko Hasegawa
040 * @since JDK5.0,
041 */
042 public class DBType_CRYPT extends AbstractDBType {
043 //* こã?プログラãƒ??VERSIONæ–?—å?を設定しますã? {@value} */
044 private static final String VERSION = "5.6.0.3 (2012/01/24)" ;
045
046 private final HybsCryptography licence = new HybsCryptography() ;
047
048 /**
049 * String引数のæ–?—å?を+1した文字å?を返しますã?
050 * ※ こã?クラスでは実è£?�•れてã�?�¾せんã€?
051 *
052 * @og.rev 5.6.0.3 (2012/01/24) ADD に、引数の値を加算する機è?を追åŠ?�—ますã?
053 *
054 * @param value String引数
055 * @param add åŠ?®—する文字å?(null の場合ã?、従来と同じã€?1 しますã?)
056 *
057 * @return 引数のæ–?—å?を+1した文字å?。またã?、任意ã?値を加算した文字å?ã€?
058 * @throws UnsupportedOperationException こã?クラスを実行すると、å¿?�š発生しますã?
059 */
060 @Override
061 // public String valueAdd( final String value ) {
062 public String valueAdd( final String value,final String add ) {
063 String errMsg = "こã?メソãƒ?ƒ‰は、このクラスからは使用できませんã€?;
064 throw new UnsupportedOperationException( errMsg );
065 }
066
067 /**
068 * HybsCryptographyにより、暗号化されたæ–?—を返しますã?
069 *
070 * HybsCryptography クラスを使用した、秘å¯?‚ー暗号化方式により、登録ãƒ??タを暗号化しますã?
071 * 暗号化されたバイト文字ã?ã€?¼‘6é?数でæ–?—å?に変換してã�?�¾すã?
072 *
073 * @param value ä¸?ˆ¬に編é›?ƒ‡ータとして登録されたデータ
074 *
075 * @return 修正後ã?æ–?—å?(ä¸?ˆ¬にãƒ??タベã?スに登録するãƒ??タ)
076 */
077 @Override
078 public String valueSet( final String value ) {
079 return licence.encrypt( StringUtil.rTrim( value ) );
080 }
081 }