Шифрование/дешифрование базируется на стандартном java-классе javax.crypto.Cipher.
Package.zip необходимо загрузить в макет внешней компоненты.
Компонента имеет 8 параметров. Им нужно задать 8 разных чисел. Мне было достаточно двузначных. В С++ имеют тип BYTE. Комбинация этих 8 чисел является ключом шифрования/дешифрования.
Procedure Demo ()
AttachAddIn ( "CommonTemplate.xxx", "Sample", AddInType.Native );
Lib = New ( "AddIn.Sample.SimonsXXX" );
//Кирилица
Lib.Б1 = 11;
Lib.Б2 = 22;
Lib.Б3 = 33;
Lib.Б4 = 44;
Lib.Б5 = 55;
Lib.Б6 = 66;
Lib.Б7 = 77;
Lib.Б8 = 88;
x = Lib.Зашифровать ( "123456789qwertyu" );
y = Lib.Расшифровать ( x );
//Латиница
Lib.B1 = 11;
Lib.B2 = 22;
Lib.B3 = 33;
Lib.B4 = 44;
Lib.B5 = 55;
Lib.B6 = 66;
Lib.B7 = 77;
Lib.B8 = 88;
x = Lib.Encrypt ( "123456789qwertyu" );
y = Lib.Decrypt ( x );
EndFunction
Работа компоненты проверена на платформе 8.3.15.59.
В качестве второй части одного целого предлагаю компоненту - считыватель уникального ID устройства