Дмитрий Ш.

Пользователи
  • Публикаций

    18
  • Зарегистрирован

  • Посещение

  • Победитель дней

    3

Дмитрий Ш. стал победителем дня 6 сентября 2017

Дмитрий Ш. имел наиболее популярный контент!

Информация о Дмитрий Ш.

  • Звание
    Пользователь

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

Включить
  1. Такой проект не должен умереть без следа, подумайте, возможно исходники стоит положить на гитхаб.
  2. Дмитрий Ш.

    [Android] Шифрование

    в дополнение преидущего поста, нашел бесплатное решение для Delphi у китайских коллег QDAC3 uses qaes, NetEncoding; procedure TForm1.InitEncrypt(var AES: TQAES); var AKeyType: TQAESKeyType; const AInitVector: TQAESBuffer = (49, 50, 51, 52, 53, 54, 55, 56, 57, 48, 65, 66, 67, 68, 69, 70); // 1234567890ABCDEF begin AKeyType := kt128; AES.AsCBC(AInitVector, 'HJORNYCZJXJBUGOA', AKeyType); end; procedure TForm1.DecryptClick(Sender: TObject); var AES: TQAES; ABytes: TBytes; begin InitEncrypt(AES); MemoText.Lines.Clear; MemoText.Lines.Add(AES.Decrypt(TNetEncoding.Base64.DecodeStringToBytes(MemoQAES.Lines.Text))); end; procedure TForm1.EncryptClick(Sender: TObject); var AES: TQAES; ABytes: TBytes; begin InitEncrypt(AES); AES.Encrypt(Trim(MemoText.Lines.Text), ABytes); MemoQAES.Lines.Clear; MemoQAES.Lines.Add(TNetEncoding.Base64.EncodeBytesToString(ABytes)); end; проверка в GoLang и PHP работает, главное использовать вектор один
  3. Дмитрий Ш.

    [Android] Шифрование

    Удалось зашифровать и дешифровать текст в трех ЯП Delphi, PHP, GoLang PHP. Используется phpseclib v1.0.7 <?php // phpseclib 1.0.7 // http://phpseclib.sourceforge.net set_include_path('phpseclib'); include('Crypt/AES.php'); $my_key = 'HJORNYCZJXJBUGOA'; $my_iv = '1234567890ABCDEF'; $text = 'Проверка UTF8 текста'; $cipher = new Crypt_AES(); // CRYPT_AES_MODE_CBC $cipher->setKeyLength(128); $cipher->setKey($my_key); $cipher->setIV($my_iv); echo base64_encode($cipher->encrypt($text)).PHP_EOL; Delphi. Использую TMS Cryptography Pack uses CryptBase, AESObj, MiscObj; function AesEncryption:String; var AES: TAESEncryption; begin AES := TAESEncryption.Create(nil); try AES.AType := atCBC; AES.KeyLength := kl128; AES.OutputFormat := base64; AES.Key := 'HJORNYCZJXJBUGOA'; AES.IVMode := AESObj.userdefined; AES.IV := '1234567890ABCDEF'; result := AES.Encrypt('Проверка UTF8 текста'); finally AES.Free; end; end; GoLang. Все родное. Запустить в песочнице package main import ( "bytes" "crypto/aes" "crypto/cipher" "encoding/base64" "fmt" ) func PKCS5Padding(src []byte, blockSize int) []byte { padding := blockSize - len(src)%blockSize padtext := bytes.Repeat([]byte{byte(padding)}, padding) return append(src, padtext...) } func PKCS5UnPadding(src []byte) []byte { length := len(src) unpadding := int(src[length-1]) return src[:(length - unpadding)] } func AesEncryption(key, iv, plainText []byte) ([]byte, error) { block, err := aes.NewCipher(key) if err != nil { return nil, err } blockSize := block.BlockSize() origData := PKCS5Padding(plainText, blockSize) blockMode := cipher.NewCBCEncrypter(block, iv) cryted := make([]byte, len(origData)) blockMode.CryptBlocks(cryted, origData) return cryted, nil } func AesDecryption(key, iv, cipherText []byte) ([]byte, error) { block, err := aes.NewCipher(key) if err != nil { return nil, err } blockMode := cipher.NewCBCDecrypter(block, iv) origData := make([]byte, len(cipherText)) blockMode.CryptBlocks(origData, cipherText) origData = PKCS5UnPadding(origData) return origData, nil } func main() { originalText := "Проверка UTF8 текста" fmt.Println(originalText) mytext := []byte(originalText) key := []byte("HJORNYCZJXJBUGOA") iv := []byte("1234567890ABCDEF") cryptoText, err := AesEncryption(key, iv, mytext) if err != nil { fmt.Println(err) } fmt.Println(base64.StdEncoding.EncodeToString(cryptoText)) decryptedText, _ := AesDecryption(key, iv, cryptoText) fmt.Println(string(decryptedText)) } К сожалению бесплатной либы для Delphi, чтоб работало в WIN и Android не нашел.
  4. Дмитрий Ш.

    Разный цвет текста

    как-то так
  5. Дмитрий Ш.

    Разный цвет текста

    есть бесплатные компоненты Alcinoe https://sourceforge.net/projects/alcinoe/
  6. Дмитрий Ш.

    Пуш и андроид 6

    по пушам на MIUI лучше почитать на 4pda.ru/ все описано и с картинками )
  7. gmLib есть https://github.com/cadetill/gmlib_v1 умеет Google и OSM
  8. Дмитрий Ш.

    задать шрифт (default)

    des80, с такой позицией помощи можно не ждать. хамству тут не место
  9. Дмитрий Ш.

    задать шрифт (default)

    Delphi умеет наследование форм. Делаете основную форму с общим поведением для всех форм и все формы проекта наследуете от этой формы.
  10. Дмитрий Ш.

    Помогите с MySQL

    будем приводить аргументы Не безопасно. не знаем откуда к базе подключаемся, а значит нужен доступ с любых хостов. нагрузка на саму базу. открыть долгий коннект и работа с долгими транзакциями это плохо сказывается на быстродействии. каждый клиент это отдельный коннект. опять нагрузка на БД (в 3-х звенке пулл коннектов) Что делать серверу если во время запроса у вас пропало соединение и не все данные ушли на сервер? для затравки так сказать... жду опровержений )
  11. Дмитрий Ш.

    Fire-Monkey в Telegram

    Признаю, был не прав. посыпаю голову пеплом )
  12. Дмитрий Ш.

    Fire-Monkey в Telegram

    мое мнение. чат - плохо. да. обсудить, что лучше яблоко или андроид можно. но. но вот для вопросов связанных с программированием - зло. на форуме есть поиск. форум индексируется в поисковиках. что позволяет искать ответы не задавая лишних вопросов.
  13. Дмитрий Ш.

    Как выводить математические формулы

    Для VCL есть пример с исходниками на странице http://aleksandr-pro.ru/project2.php
  14. python4delphi для Android в данной реализации невозможен, все завязано на Windows используется pythonXX.dll
  15. Дмитрий Ш.

    Google Analytics

    В коллекцию. как использовать Google Analytics без сторонних компонент http://thedelphiway.blogspot.com.by/2016/07/google-analytics-in-delphi-mobile.html