Вот есть код
/// Key pool, transposition table and suffix may be moved into db.json in the future if this algo is reused elsewhere
/// Key pool, transposition table and suffix may be moved into db.json in the future if this algo is reused elsewhere
/// ‹/summary›
class IC172Algo1 : SecurityProvider
{
public override bool GenerateKey(byte[] inSeed, byte[] outKey, int accessLevel, List‹Parameter› parameters)
{
if ((inSeed.Length != 8) || (outKey.Length != 8))
{
return false;
}
{
if ((inSeed.Length != 8) || (outKey.Length != 8))
{
return false;
}
byte[] seedInput = new byte[] { inSeed[0], inSeed[2], inSeed[4], inSeed[6] };
seedInput = ExpandByteArrayToNibbles(seedInput);
byte[] seedInput = new byte[] { inSeed[0], inSeed[2], inSeed[4], inSeed[6] };
seedInput = ExpandByteArrayToNibbles(seedInput);
List‹byte[]› keyPool = new List‹byte[]›();
keyPool.Add(new byte[] { 0xEF, 0xCD, 0xAB, 0x89, 0x67, 0x45, 0x23, 0x01 });
keyPool.Add(new byte[] { 0x45, 0x67, 0x01, 0x23, 0xCD, 0xEF, 0x89, 0xAB });
keyPool.Add(new byte[] { 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF });
keyPool.Add(new byte[] { 0x89, 0xAB, 0xCD, 0xEF, 0x01, 0x23, 0x45, 0x67 });
keyPool.Add(new byte[] { 0x54, 0x76, 0x10, 0x32, 0xDC, 0xFE, 0x98, 0xBA });
keyPool.Add(new byte[] { 0xEF, 0xCD, 0xAB, 0x89, 0x67, 0x45, 0x23, 0x01 });
keyPool.Add(new byte[] { 0x89, 0xAB, 0xCD, 0xEF, 0x01, 0x23, 0x45, 0x67 });
keyPool.Add(new byte[] { 0xBA, 0x98, 0xFE, 0xDC, 0x32, 0x10, 0x76, 0x54 });
List‹byte[]› keyPool = new List‹byte[]›();
Устройство запрашивает ввод ключа на доступ при этом дает исходные данные в виде HEX кода несколько байт. мы берем эти несколько байт и проганяем через наш написанный код и получаем ответ для ввода в устройство.
Я в программировании вообще мало понимаю и даже с чего начать строить схему не представляю.