gifts2017

Генерация QR Кода, sha256hash через javascript

Опубликовал eugenie zheludkov (eugeniezheludkov) в раздел Программирование - Инструментарий

Возможность генерировать QRкод прямо в коде. Никаких внешних макетов и DLL только javascript.
Также имеется пересчет хэш-функций sha256,ECDSA
Конвертирование Utf8Encode,Base58,BigInteger .

Вся работа ведется через MSScriptControl.ScriptControl

Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl");

Скрипт.language = "javascript";

выполняя функции реализованные на js, можно получать результаты не хуже чем через внешние компоненты.

по времени выполнения: на генерацию 100 двойных sha256(sha256())  требуется 3 секунды

QR генерируется мгновенно в Gif формате и сериализуется в base64

подставляя в стандартный десериализатор объектов 1с

получаем Объект 1с картинка пригодную для вставки, сохранения куда угодно.

js код взят с brainwallet.org и адаптирован под выполнение в 1с , убрана работа с html тэгами и всяческие document.write.

Скачать файлы

Наименование Файл Версия Размер
QRCODE 26
.epf 38,59Kb
19.02.14
26
.epf 0 38,59Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Сергей (seermak) 19.02.14 06:52
генерировать-то генерирует, но при чтении сканером выдает абракодабру((((
2. Трактор Трактор (Трактор) 19.02.14 10:13
Какие действия выполняет функция BitcoinRun(source,Скрипт = Неопределено), которая исполняется при каждом нажатии кнопки выполнить ?
3. Трактор Трактор (Трактор) 19.02.14 10:18
(1) нормально кодирует. Но только латиницу. А вот биткоины напрягают.
4. Сергей (seermak) 27.02.14 20:35
я пользуюсь вот этой процедурой:
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("png");
АдресНачало = "http://chart.apis.google.com/chart?cht=qr&chs=230x230&chl=";
АдресКонец = Номер  + Символы.ПС + ?(СуммаДоговора = 0,"","Сумма: " + СуммаДоговора + Символы.ПС) + Клиент.Наименование  + Символы.ПС + Клиент.АдресФактический;
АдресКонец = СтрЗаменить(АдресКонец, " ", "+");
АдресКонец = EncodeURL(АдресКонец);
   Попытка
	Соединение = ПолучитьCOMОбъект("","Microsoft.XMLHTTP");
   Соединение.open("GET", АдресНачало + АдресКонец,0,,);
   Соединение.send(null);
   СохранитьДвоичныйБуферВФайл(Соединение.responseBody, ИмяВременногоФайла);
   Область.Рисунки.QRКод.Картинка = Новый Картинка(ИмяВременногоФайла);
	Исключение
	Выполнено = Ложь;
	КонецПопытки;
...Показать Скрыть

Кодируется все без проблем и с русскими буквами
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа