Здравствуйте.
fsdb пишет:1)получается коды доступа - Public, PrivateRead и так далее (то что нужно в конкретном случае ) вписываются прямо в саму программу.?
Да, в качестве параметров соответствующей функции (GrdSetAccessCodes).
fsdb пишет:2)на против переменных написано на английском - эти коды должны быть зашифрованы... что этим они имели ввиду... как защитить переменную зашифровать в программе?
В наших примерах просто приводится некоторый способ указания (установки) кодов доступа (для функции GrdSetAccessCodes) в не совсем явном виде, а именно:
{ Definitions }
const CryptPU:DWORD=$8566783; { Random value for access codes security }
CryptRD:DWORD=$17d49c84; { Random value for access codes security }
CryptWR:DWORD=$9843de24; { Random value for access codes security }
CryptMS:DWORD=$47832845; { Random value for access codes security }
Здесь определяются константы, которые будут участвовать в "запутывании" кодов доступа.
{ Data variables }
var dwPublic: DWORD; { Must be encoded }
dwPrivRD: DWORD; { Must be encoded }
dwPrivWR: DWORD; { Must be encoded }
dwPrivMS: DWORD; { Must be encoded }
Тут объявляются переменные для кодов доступа.
dwPublic:= GrdDC_DEMONVK-CryptPU; { Must be encoded }
dwPrivRD:= GrdDC_DEMORDO-CryptRD; { Must be encoded }
dwPrivWR:= GrdDC_DEMOPRF-CryptWR; { Must be encoded }
dwPrivMS:= GrdDC_DEMOMST-CryptMS; { Must be encoded }
Тут переменным присваиваются соответствующие значения кодов доступа из которых вычитаются значения ранее определенных констант.
nRet:= GrdSetAccessCodes( hGrd, { Handle to Guardant protected container }
dwPublic + CryptPU, { Must be already specified }
dwPrivRD + CryptRD, { Must be already specified }
dwPrivWR + CryptWR, { == 0 if not needed }
dwPrivMS + CryptMS); { == 0 if not needed }
Здесь устанавливаются необходимые коды доступа с одновременным их "декодированием", путем сложения с ранее вычтенными значениями
Вся эта схема призвана указать на то, что коды доступа лучше хранить в приложении в неявном виде и применять по мере надобности.
Методы сокрытия кодов доступа могут быть разнообразными.