All streams
Search
Write a publication
Pull to refresh
39
0
Send message
А что в нем не так? У меня такое на ноутбуке
В Краснодаре я бы выбрал второй вариант (маленькая площадь зимы, большая лета), в Москве наоборот третий. Никакой логики — просто ассоциация.
я за вариант «матовый предпочтительнее, но при отсутствии альтернативы сойдет и глянцевый»
Хороший пост получился. Годный. А главное универсальный. Можно даже на форуме сантехников постить.
Почему не внешний винт?
Например увидел такую сеть в Краснодаре на новогодние праздники. Аналог «Союз»-а, но союз старый и не умер еще чисто случайно, а эта новая. Есть практически в каждом крупном торговом центре. Название не вспомню быстро.
Я не поленился нажать на ссылку
Кстати в глубинках с медленными интернетами носители еще сильно распространены. Там даже появляются и развиваются целые сети больших магазинов с компактами.
Последние компы, которые покупал были без СД-привода: ноутбук себе и mini-itx комп родителям (покупал умышленно без него — чтоб компактней и легче устройства были)
Вместо СД привода зашел в ближайший ларек и купил флешку.
Лучше ты пиши про свой — он сложнее (ввиду отсутствия базовой поддержки больших чисел в js, base64 и тд). Мне лень. Мой можешь вставлять и использовать как хочешь.
Обязательно. Этот топик читают люди, копирующие код, не заглядывая внутрь, как стало понятно выше.
Вы молодец. 70к и 20к рублей это практически одинаковые цены. Че мелочиться-то.
По совокупности требований быстродействие/размер/вес/цена/бренд/.../без глянца таких может просто не оказаться. При этом если остальные характеристики требуют каких-то технических сложностей или увеличивают цену, то наличие матовой поверхности не меняет ничего. И не совсем понятна логика производителей, тыкающих везде глянец.
У меня ноутбук с глянцем. К глянцевому экрану я привык еще на предыдущем ноуте — уже как-то не раздражает.
На корпусе всего одна глянцевая деталь и вот она дико бесит — рамка вокруг экрана. Не могли-таки уроды совсем без глянца на корпусе обойтись — не модно епт. Все никак руки не дойдут мелкой шкуркой по ней пройтись :)
lenovo u350 если что.
#-*- coding:utf-8 -*-

import sys, copy

if __name__ == '__main__':
  if len(sys.argv) != 3 : print "usage: python %s <public-key> <text>" % sys.argv[0]; sys.exit()
  NSTR,ESTR = sys.argv[1].split("#")
  DATA_ARR = [ord(x) for x in sys.argv[2]]
  N,E,STEP_SIZE = int(NSTR,16),int(ESTR,16), len(NSTR)/2-1
  
  prev_crypted = [0]*STEP_SIZE
  
  hex_out = ""
  for i in range(0,(len(DATA_ARR)-1)/STEP_SIZE+1):
    tmp = DATA_ARR[i*STEP_SIZE:(i+1)*STEP_SIZE]
    tmp = [tmp[i] ^ prev_crypted[i] for i in range(0,len(tmp))]
    tmp.reverse()
    plain = 0
    for x in range(0,len(tmp)): plain+= tmp[x]*pow(256, x, N)
    hex_result = "%x" % pow(plain,E,N)
    hex_result = "".join(['0']*( len(NSTR)- len(hex_result))) + hex_result

    for x in range(0,min(len(hex_result),len(prev_crypted)*2),2):
      prev_crypted[x/2] = int(hex_result[x:x+2],16)
      
    hex_out += ("0" if len(tmp) < 16 else "") + ("%x" % len(tmp)) + "00" # current size
    ks = len(NSTR)/2
    hex_out += ("0" if ks < 16 else "") + ("%x" % ks) + "00" # key size
    hex_out += hex_result

  print hex_out.decode("hex").encode("base64").replace("\n","")


Понял почему, не работает для более мелких ключей. У яндекса библиотека с альтернативной математикой.

Для мелких чисел периодически библиотека яндекса вычисляет неверно:

Например:
p = 3486775
e = 65537
n = 2279134640

По мнению яндекса (p^e) mod n будет равно 1853620120

По мнению всего остального человечества это равно 361606135.

На больших числах вроде ошибок не было.

Так что я могу воспроизвести алгоритм шифрации (и воспроизвел), но воспроизводить ошибки я не хочу.
упс. строка была «6dc8373faa9a424988341d3f25ffeaec». Обрезалась при копировании из putty
Ключ
81DA1AD21759F9B8160F737E717482C56AB7BBCA2A9280B223FD8283C5CCD286E7CAF4F765954B0B4BD0746DB040CD226E444E50567AF6563F964006A9A81D9F#10001

Строка
6dc8373faa9a424988341d3f2

В питон варианте для лечения бага заменил строку
if len(hex_result) % 2 == 1: hex_result = "0" + hex_result
на
hex_result = "".join(['0']*( len(NSTR)- len(hex_result))) + hex_result

Потестил ключи длиннее — работает вроде (только «4000» заменил на соответствующее вычисление этой костанты). Косяки с ключами короче текущего, что ожидаемо — я не копировал алгоритм яндекса, а пытался его воспроизвести с использованием стандартных для всех языков типов «строка» и «число» — мог где-то и не учесть варианты для других длин ключа.
Вообще длина ключа 512. Но тут выяснилась проблема — запустил тест, запрашивающий ключи с яндекса и сравнивающий вывод моего скрипта и яндексовского encrypt.
На 1000 ключей нашлось 4 несовпадения. Где-то не учел что-то. Буду править.
Да я просто вспомнил ваше сообщение

> на php не удалось портировать. очень сложно сопоставлять типы данных.

и решил подколоть.

По поводу длинны ключа — единственное, что может понадобиться изменить — строчку:
hex_out += («0» if len(tmp) < 16 else "") + ("%x" % (len(tmp)*256)) + «4000» + hex_result
Было лень вводить лишние константы.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity