Интересно, у меня такого нет если все делать как на видео.joiner сказал(а):нашел еще косяк
если хотя бы раз было такое значит стоит пересмотреть код. или нет?Интересно, у меня такого нет если все делать как на видео.
нашел еще косяк. смотри видео. будет не понятно, объяснюhttp://yadi.sk/d/ynaPwh_j7FFP2
xklx, может быть при взаимодействии с элементом ListView использовать проверку на то что есть ли выделенный пункт или нет, и только потом активировать кнопки изменить|удалить.
Тестировать глюки EXE-шника не всякому по душе, когда легче в течении часа написать свой вариант без единого глюка. Но обсуждать алгоритм намного продуктивней, при этом учатся все, и подстёгивается соревновательный процесс. В вашем случае, пользователи форума методом тыка выявляют ошибки, а вы накладываете кривые заплатки. Мы могли бы вам сразу показать правильный стиль программирования и это было бы для вас продуктивнее.Просто он в неком черновом варианте
#include <EditConstants.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
$hGui = GUICreate('Аккаунты', 510, 330)
$treeview = GUICtrlCreateTreeView(10, 5, 180, 280, BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)
$iBtnAdded = GUICtrlCreateButton('Добавить', 10, 290, 55, 30)
$iBtnChange = GUICtrlCreateButton('Изменить', 70, 290, 55, 30)
$iBtnDelete = GUICtrlCreateButton('Удалить', 130, 290, 55, 30)
GUICtrlCreateLabel('Сайт:', 210, 7, 50, 17)
GUICtrlCreateLabel('Mail:', 210, 37, 50, 17)
GUICtrlCreateLabel('Логин:', 210, 67, 50, 17)
GUICtrlCreateLabel('Пароль:', 210, 97, 50, 17)
GUICtrlCreateLabel('Комментарии:', 210, 125, 100, 17)
$iSite = GUICtrlCreateInput('', 260, 5, 240, 22)
$iMail = GUICtrlCreateInput('', 260, 35, 240, 22)
$iLogin = GUICtrlCreateInput('', 260, 65, 240, 22)
$iPass = GUICtrlCreateInput('', 260, 95, 180, 22)
$iEdit = GUICtrlCreateEdit('' & @CRLF, 210, 150, 290, 170, $ES_AUTOVSCROLL + $WS_VSCROLL + $ES_NOHIDESEL + $ES_WANTRETURN)
$iBtnShow = GUICtrlCreateButton('Показать', 445, 95, 55, 22)
GUISetState()
While 1
Switch GUIGetMsg()
Case $iBtnAdded
$sSite = GUICtrlRead($iSite)
If StringLen($sSite) < 5 Then
MsgBox(0, 'Сообщение', 'Укажите сайт', 0 , $hGui)
ContinueLoop
EndIf
$sMail = GUICtrlRead($iMail)
; If StringLen($sMail) < 5 Then
; MsgBox(0, 'Сообщение', 'Укажите почтовый ящик', 0 , $hGui)
; ContinueLoop
; EndIf
$sLogin = GUICtrlRead($iLogin)
If StringLen($sLogin) < 5 Then
MsgBox(0, 'Сообщение', 'Укажите логин', 0 , $hGui)
ContinueLoop
EndIf
$sPass = GUICtrlRead($iPass)
If StringLen($sPass) < 5 Then
MsgBox(0, 'Сообщение', 'Укажите пароль', 0 , $hGui)
ContinueLoop
EndIf
$Data = _Crypt_EncryptData($sSite & @LF & $sMail & @LF & $sLogin & @LF & $sPass, $sPassKey, $CALG_AES_256)
Case $iBtnChange
GUICtrlSetData($iStatusBar, 'Done')
Case $iBtnDelete
GUICtrlSetData($iStatusBar, 'Done')
Case -3
Exit
EndSwitch
WEnd
AZJIO, Да всё гораздо проще пусть автор озвучит алгоритм шифрования, и я озвучу право на жизнь данной программы. Если алгоритм RSA - то программа не имеет права на жизнь, так же как и программа в аналогичной теме которая сейчас активно обсуждается.
$input = InputBox("Введите пароль","Введите пароль для доступа к списку паролей","","*")
$shifr = "4tonibyd" & $input & Bitor(hex(StringToBinary ($input,4)),0x45758315)
_StringEncrypt (True,$unEnc,$shifr, 5)
Что вы имеете ввиду? То что пароль доступен? Я думаю нужно вводить пароль при входе в аккаунт. Хранить пароль в программе бесполезно, её легко декомпилировать.Ну тогда решите судьбу программы
Что вы имеете ввиду? То что пароль доступен? Я думаю нужно вводить пароль при входе в аккаунт. Хранить пароль в программе бесполезно, её легко декомпилировать.
я указал на то, что если есть уже один созданный файл базы, то программа дает себя запустить с другим паролем и редактирует эту базу. точнее перезаписывает. а зачем есть такой доступ? если при запуске ввели другой пароль, то и новый файл базы данных должен быть.Ну я незнаю правильно ли это называть "косяком"
я указал на то, что если есть уже один созданный файл базы, то программа дает себя запустить с другим паролем и редактирует эту базу. точнее перезаписывает. а зачем есть такой доступ? если при запуске ввели другой пароль, то и новый файл базы данных должен быть.ну и опять та же ошибка
[Prog]
PassCheck=52
#Include <IniVirtual.au3>
Local $A = _IniVirtual_Initial ( $Data ); $Data = прочитанный файл базы (в не зашифрованном виде)
IF _IniVirtual_Read ( $A, "Prog", "PassCheck", "0" ) <> 54 Then
MsgBox(16,"","Неверный пароль!")
Exit
Else
MsgBox(64,"","Добро пожаловать!")
EndIF
В новой версии AutoIt эта функция удалена из справки, но пока остаётся в UDF наверно для совместимости. Для этого есть другие:
#include <Crypt.au3>
; Способ создания пароля
; $password='Новый пароль'
; $bEncrypted = _Crypt_EncryptData($password, $password, $CALG_AES_192)
; MsgBox(0, 'Шифрованый пароль', $bEncrypted)
; ClipPut($bEncrypted)
; для программы
$bEncrypted = '0x8B28423C208DE678B2772422950C6A71' ; пароль Привет
Do
$pass = InputBox('Вход', 'Введите пароль', '', '*', 100, 130)
If @error Then Exit
Until $pass == BinaryToString(_Crypt_DecryptData($bEncrypted, $pass, $CALG_AES_192))
MsgBox(0, 'Вход', 'Пароль верный - ' & $pass)
Алгоритм RC4 является одним из потомков RSA, криптоустойчивость RSA напрямую зависит от битности ключа. У autoit при стандартной реализации - большие проблемы с длинными числами. Для обеспечения хотя бы относительной криптоустойчивости программы, минимальная длинна ключа должна составлять 128 бит. Но на данный момент, по рекомендациям различных криптографических лабораторий, длинна ключа рекомендуемая для различных алгоритмов в принципе, составляет 2048 бит. Но ввиду простоты реализации, большинство представляемых на рынке программ, даже не поддерживают алгоритмы шифрования способные переработать ключ такой длинны, и единственное что они могут обеспечить пользователю - это лишь душевное спокойствие пользователя и защиту данных от домашних питомцев, но никак не безопасность его данных.xklx сказал(а):Belfigor [?]
AZJIO, Да всё гораздо проще пусть автор озвучит алгоритм шифрования, и я озвучу право на жизнь данной программы. Если алгоритм RSA - то программа не имеет права на жизнь, так же как и программа в аналогичной теме которая сейчас активно обсуждается.
Ну тогда решите судьбу программы :(
Код:$input = InputBox("Введите пароль","Введите пароль для доступа к списку паролей","","*") $shifr = "4tonibyd" & $input & Bitor(hex(StringToBinary ($input,4)),0x45758315) _StringEncrypt (True,$unEnc,$shifr, 5)
В отличие от современных шифров (таких, как в eSTREAM), RC4 не использует отдельной оказии (англ. nonce) наряду с ключом. Это значит, что если один ключ должен использоваться в течение долгого времени для шифрования нескольких потоков, сама криптосистема, использующая RC4, должна комбинировать оказию и долгосрочный ключ для получения потокового ключа для RC4. Один из возможных выходов — генерировать новый ключ для RC4 с помощью хэш-функции от долгосрочного ключа и оказии. Однако многие приложения, использующие RC4, просто конкатенируют ключ и оказию. Из-за этого и слабого расписания ключей, используемого в RC4, приложение может стать уязвимым.[6][7][8] Поэтому он был признан устаревшим многими софтверными компаниями, такими как Microsoft. Например, в .NET Framework от Microsoft отсутствует реализация RC4.
Belfigor сказал(а):душевное спокойствие пользователя и защиту данных от домашних питомцев
Коллеги давайте не будем тему превращать в курилку! О том, какой алгоритм кому нравится можно обсудить, создав отдельную тему в разделе "Общение". Здесь пишите, пожалуйста, по существу.