Pull to refresh

Comments 8

#define er1(k) (rotr(2*x[(r-1)%xw]^x[(r+1)%xw]^k^r,8)*9^k)
 enRUPT (u32 *x, const u32 xw, u32 *key, const u32 kw)
{
    u32 r, s=4, n=s*(2*xw+kw);
    for (r=1; r<=n; r++) x[r%xw] ^= er1(key[r%kw]);
}
 unRUPT (u32 *x, const u32 xw, u32 *key, const u32 kw)
{
    u32 r, s=4, n=s*(2*xw+kw);
    for (r=n; r   ; r--) x[r%xw] ^= er1(key[r%kw]);
}


EnRupt в 11 строчек вместе с расшифровкой
Неплохо было бы в первых абзацах рассказать что такое DES.
Н-да, на низкоуровневом языке такое в 30 строк не уместишь, однозначно.

PS Любопытно, а когда бог объявлял конструктор и инициализировал переменные («Да будет свет!») — это сколько примерно строк кода на C++? (Попутно, вспоминается и «сколько ангелов поместится на одном пикселе?»)
Смотрю на код и чувствую себя идиотом. Это правда не эзотерический язык типа brainfuck? Им кто-то реально пользуется? И эти программы потом читают?
По поводу «кто-то пользуется» — на сайте языка есть достаточно внушительный список компаний и университетов, среди них Intel, HP и Maple.

Читают или не читают — сказать не берусь, но лично я после пары вечеров с интерпретатором уже вполне себе могу читать конструкции, хоть и не без труда и не без помощи словарика.
Язык — прямой наследник APL, поэтому не эзотерический.
Программы читаются, но этот навык долго нарабатывается.
В данном посте читается сравнительно легко, тут в основном explicit-форма записи. Есть tacit-форма. Ее читать сложнее. Также очень зависит от кода. Если люди много скобок пишут, не могут пользоваться нормально крюками и вилками — то читается плоховато.
Sign up to leave a comment.

Articles