---------------------------------------------------------------------------
| 1994 | } |
| 1995 | //--------------------------------------------------------------------------- |
| 1996 | AnsiString UnsecurePassword(AnsiString secure_password) |
| 1997 | { |
| 1998 | WORD size = secure_password.Length() / 2; |
| 1999 | BYTE * data = new BYTE[size]; |
| 2000 | AnsiString rv; |
| 2001 | if( FromHexMas(secure_password, data, size) ) |
| 2002 | { |
| 2003 | for(int i=0, j=0; i<size; i++) |
| 2004 | { |
| 2005 | data[i] ^= (BYTE)szSecurePassword[j++]; |
| 2006 | if( ! szSecurePassword[j] ) |
| 2007 | j = 0; |
| 2008 | } |
| 2009 | WORD l = *(WORD *)data; |
| 2010 | rv = AnsiString((char *)(data+2), l); |
| 2011 | } |
| 2012 | delete [] data; |
| 2013 | return rv; |
| 2014 | } |
| 2015 | //--------------------------------------------------------------------------- |
| 2016 | #pragma package(smart_init) |