
Andrew
06.05.2019
16:30:58
Учился бы лучше - знал бы что именно это и называется спам

F̦̮̦͍́ o̹̟̩r̨̮͈ ̘͕̥͓d̙͓̀ ̖̱̟en͖͍̼̘̺̣̘
06.05.2019
16:31:02

Leon
06.05.2019
16:31:18
А зачем тогда только что написал в канал по верстке сайтов?

Andrew
06.05.2019
16:31:25

Google

Roman
06.05.2019
16:31:59

Tishka17
06.05.2019
16:32:08

TeQzi
06.05.2019
16:32:25
Да ладно, он ведь успокоился

Leon
06.05.2019
16:33:29

Andrew
06.05.2019
16:34:51
Господа, а кто-то из здесь присутствующих пользовался Google Cloud?

Tishka17
06.05.2019
16:37:39
Никто и никогда

TeQzi
06.05.2019
17:02:39
Как вернуть название ключа по значению

Aнтонъ
06.05.2019
17:03:34

TeQzi
06.05.2019
17:03:59

Artem
06.05.2019
17:04:20
Кто готов оказать помощь по настройке бота, по заданым алгоритмам, все что требуется: установить бота на сервер, внести настройки, и проверить
При полной работоспобности, готов оплатить выполненую работы

OMEN
06.05.2019
17:12:38


Gennady
06.05.2019
17:26:09
Есть скрипт на сайте, который ипользует библиотеку CryptoJS. Хотелось бы эмулировать генерацию ключей на python.
j = CryptoJS.AES.encrypt(JSON.stringify(LIVESTREET_SECURITY_KEY), "SECRETKEY", {
format: g
}).toString();
Нашел в доках библы пример работы с ней. И возможно даже рабочий скрипт на php.
function cryptoJsAesEncrypt($passphrase, $value){
$salt = openssl_random_pseudo_bytes(8);
$salted = '';
$dx = '';
while (strlen($salted) < 48) {
$dx = md5($dx.$passphrase.$salt, true);
$salted .= $dx;
}
$key = substr($salted, 0, 32);
$iv = substr($salted, 32,16);
$encrypted_data = openssl_encrypt(json_encode($value), 'aes-256-cbc', $key, true, $iv);
$data = array("ct" => base64_encode($encrypted_data), "iv" => bin2hex($iv), "s" => bin2hex($salt));
return json_encode($data);
}
Переписал это в
from secrets import token_hex
from hashlib import md5
from base64 import b64encode
from Crypto.Cipher import AES
def crypt(passphrase, value):
salt = token_hex(8)
salted = ''
dx = ''
while len(salted) < 48:
target = dx + passphrase + salt
dx = md5(target.encode('utf-8')).hexdigest()
salted += dx
key = salted[:32]
iv = salted[32:-16]
cipher = AES.new(key.encode('utf-8'), AES.MODE_CBC, iv.encode('utf-8'))
return {
'ct': b64encode(cipher.encrypt(value.encode('utf-8'))).decode('utf-8'),
'iv': iv,
's': salt
}
Вот пример результата работы скрипта на сайте:
{"ct":"9V0m2MQYyVmvX0KFysUiabJXybX5YvlrcExJivn97RVmWGfCzBvXtTZBHzRYzmxZ","iv":"f0501cb3e1821662174ef4a27668ea5f","s":"f4ba47651002ed41"}
Вот пример результата скрипта на Python
{'ct': 'YdyKzxQg7C91l1xx+G+aQ4DA0N5mmVb+FH0M+LEwlis=', 'iv': '05a4c3d560f16a36', 's': 'e05d97054995a41e'}
Выходит что длины разные

Google

Gennady
06.05.2019
17:27:48
Там AES. Что-бы поправить? Мож кто в JSах шарит?

Nikolay
06.05.2019
17:29:49

TeQzi
06.05.2019
17:31:18

OMEN
06.05.2019
17:32:15

TeQzi
06.05.2019
17:38:34

OMEN
06.05.2019
17:40:24

Nikolay
06.05.2019
17:41:13
У меня кончились слова.

А
06.05.2019
17:42:09

Aragaer
06.05.2019
17:43:01
>>> d = {'a': 1, 'b': 2}
>>> D = {v: k for k, v in d.items()}
>>> D
{1: 'a', 2: 'b'}

Nikolay
06.05.2019
17:43:29

Aragaer
06.05.2019
17:43:38
тогда кровь-кишки
один из них перетрет остальные
>>> d = {'a': 1, 'b': 2, 'c': 1}
>>> D = {v: k for k, v in d.items()}
>>> D
{1: 'c', 2: 'b'}

Tigran
06.05.2019
17:45:10
я слышал, там их много

Aragaer
06.05.2019
17:45:45
>>> next(k for k,v in d.items() if v==1)
'a'
вот норм вариант. Но надо StopIteration ловить руками

Nikolay
06.05.2019
17:50:04

Tigran
06.05.2019
17:50:31

OMEN
06.05.2019
17:50:34
filter(lambda k,v: v==1, d.items())

Google

TeQzi
06.05.2019
17:54:14
Сложно однако

mate
06.05.2019
17:58:04
Друзья, можете написать пример изменения текста телеграм ботом после нажатия на callback кнопку? Буквально пару строчек

Nikolay
06.05.2019
17:58:44
Я не умею создавать ботов, так что не помогу

mate
06.05.2019
17:59:11

OMEN
06.05.2019
18:03:04
Ща
Может помогу
Тебе что именно
Могу исходник с примером кинуть
Я там на твистеде пилил надстройку какую то

mate
06.05.2019
18:05:04
Тебе что именно
Просто изменение изначального текста после нажатия на кнопку. В любом возможном виде

OMEN
06.05.2019
18:05:22
Ща
https://pastebin.com/fnexEuJP

OMEN
06.05.2019
18:16:48
Там внизу пример запилен
Тип цепляешь калбэк команду к кнопке
Тык на неё, возращается слбытие калбэк и название кнопки.
Падаешь в едит меседж по айди мессаги, что вернулась

mate
06.05.2019
18:18:31
Ок, спасибо

Admin
ERROR: S client not available

OMEN
06.05.2019
18:19:52
Не за что
Бля чот не верю, что это я писал код

Google

OMEN
06.05.2019
18:20:30
Говнокод какой-то

mate
06.05.2019
18:20:56

another
06.05.2019
18:29:07

Andrew
06.05.2019
18:30:20
Спасибо

Iva
06.05.2019
18:34:04
можно ли определять свои бинарные лево и правоассоциативные операторы?
по типу +, *

?? Eugene
06.05.2019
18:35:07
Нельзя

Iva
06.05.2019
18:35:25
эх бяда. А ведь удобная же фича

?? Eugene
06.05.2019
18:35:33
Можно переопределять существующие

Iva
06.05.2019
18:35:33
для dsl в особенности
Не, не годняк.

?? Eugene
06.05.2019
18:36:03
За дсл можно сходить в хаскель или окамл

OMEN
06.05.2019
18:40:38
можно для coding модуля запилить кастом реализацию
#coding:dsl_ass
и всё
https://github.com/marrow/cinje

Iva
06.05.2019
18:43:10
Как то ну уж очень притрушенно реализовано

Tishka17
06.05.2019
18:44:33

Iva
06.05.2019
18:44:36
Но радует что такая возможность всё же есть

Сергей
06.05.2019
18:45:01
а что если нуноу эти не эыт

Google

OMEN
06.05.2019
18:45:04

Iva
06.05.2019
18:45:06

Сергей
06.05.2019
18:45:12
шас