Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * =============================================================================
   * 
   *   Copyright (c) 2007, The JASYPT team (http://www.jasypt.org)
   * 
   *   Licensed under the Apache License, Version 2.0 (the "License");
   *   you may not use this file except in compliance with the License.
   *   You may obtain a copy of the License at
   * 
  *       http://www.apache.org/licenses/LICENSE-2.0
  * 
  *   Unless required by applicable law or agreed to in writing, software
  *   distributed under the License is distributed on an "AS IS" BASIS,
  *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  *   See the License for the specific language governing permissions and
  *   limitations under the License.
  * 
  * =============================================================================
  */
 package org.jasypt.salt;
 
 

This implementation of SaltGenerator always returns a fixed salt set by the user as a String, which is returned as salt bytes using the specified charset for conversion (UTF-8 by default).

If the requested salt has a size in bytes smaller than the specified salt, the first n bytes are returned. If it is larger, an exception is thrown.

This class is thread-safe.

Author(s):
Daniel Fernández Garrido
Since:
1.2
 
 public final class FixedStringSaltGenerator implements SaltGenerator {
 
     private static final String DEFAULT_CHARSET = "UTF-8";
     
     private String salt = null;
     private String charset = ;
     
     private byte[] saltBytes = null;
    
    
Creates a new instance of FixedStringSaltGenerator
 
     public FixedStringSaltGenerator() {
         super();
     }

    
    
Sets the salt to be returned.

Parameters:
salt the specified salt.
 
     public synchronized void setSalt(String salt) {
         Validate.notNull(salt"Salt cannot be set null");
         this. = salt;
     }

    
    
Sets the charset to be applied to the salt for conversion into bytes.

Parameters:
charset the specified charset
 
     public synchronized void setCharset(String charset) {
         Validate.notNull("Charset cannot be set null");
         this. = charset;
     }

    
    
Return salt with the specified byte length.

Parameters:
lengthBytes length in bytes.
Returns:
the generated salt.
 
     public byte[] generateSalt(int lengthBytes) {
         if (this. == null) {
             throw new EncryptionInitializationException(
                     "Salt has not been set");
         }
         if (this. == null) {
             try {
                this. = .getBytes(this.);
            } catch (UnsupportedEncodingException e) {
                throw new EncryptionInitializationException(
                    "Invalid charset specified: " + this.);
            }
        }
        if (this..length < lengthBytes) {
            throw new EncryptionInitializationException(
                    "Requested salt larger than set");
        }
        return ArrayUtils.subarray(this., 0, lengthBytes);
    }


    
As this salt generator provides a fixed salt, its inclusion unencrypted in encryption results is not necessary, and in fact not desirable (so that it remains hidden).

Returns:
false
    public boolean includePlainSaltInEncryptionResults() {
        return false;
    }
    
New to GrepCode? Check out our FAQ X