litesoft
@ 947
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.encryption.symmetric; public abstract class AbstractSymmetricEncryptor implements SymmetricEncryptor { public String encrypt( String pClearText ) { if ( pClearText == null ) { return null; } Helper zHelper = createHelper( pClearText ); for ( int zChar; -1 != (zChar = zHelper.read()); ) { zHelper.encode( zChar ); } return zHelper.done(); } public String decrypt( String pEncryptedText ) throws DecryptFailureException { if ( pEncryptedText == null ) { return null; } Helper zHelper = createHelper( pEncryptedText ); for ( int zChar; -1 != (zChar = zHelper.read()); ) { zHelper.decode( zChar ); } return zHelper.done(); } abstract protected Helper createHelper( String pText ); protected abstract static class Helper { private int mTextIndex = 0; private String mText; protected StringBuilder mSB = new StringBuilder(); public Helper( String pText ) { mText = pText; } public int read() { return (mTextIndex < mText.length()) ? mText.charAt( mTextIndex++ ) : -1; } public String toString() { return mSB.toString(); } abstract public String done(); abstract public void encode( int pChar ); abstract public void decode( int pChar ); } } |