Есть ли структура HashTable в Вольфраме Mathematica?

Вот очень упрощенное объяснение:

  1. Ваш веб-браузер загружает сертификат веб-сервера, который содержит открытый ключ веб-сервера. Этот сертификат подписывается с закрытым ключом доверенного центра сертификации.

  2. Ваш веб-браузер прибывает установленный с открытыми ключами всех крупнейших центров сертификации. Это использует этот открытый ключ, чтобы проверить, что сертификат веб-сервера был действительно подписан доверенным центром сертификации.

  3. сертификат содержит доменное имя и/или IP-адрес веб-сервера. Ваш веб-браузер подтверждает с центром сертификации, что адрес, перечисленный в сертификате, является одним, с которым это имеет открытое соединение.

  4. Ваш веб-браузер генерирует общий симметричный ключ, который будет использоваться для шифрования Трафика HTTP на этом соединении; это намного более эффективно, чем использование общественности/шифрования с закрытым ключом для всего. Ваш браузер шифрует симметричный ключ с открытым ключом веб-сервера, тогда передает его обратно, таким образом гарантируя, что только веб-сервер может дешифровать его, так как только веб-сервер имеет свой закрытый ключ.

Примечание, что центр сертификации (CA) важен для предотвращения атак "человек посередине". Однако даже неподписанный сертификат предотвратит кого-то от пассивного слушания в на Вашем зашифрованном трафике, так как у них нет способа получить доступ к Вашему общему симметричному ключу.

17
задан JayC 5 July 2013 в 07:15
поделиться

3 ответа

Обновление: Mathematica версии 10 представила структуру данных Association ( учебник ).


Существует ряд возможностей. Самый простой способ, который хорошо работает, если вам не нужно добавлять или удалять ключи из таблицы или изменять связанные с ними значения, - это создать список правил с ключом слева и значением справа. -ручной стороной и используйте на ней Dispatch .

Если вам действительно нужно изменить записи в таблице, вы можете использовать DownValues ​​ символа в качестве хеш-таблицы. Это будет поддерживать все операции, которые обычно используются с хеш-таблицами. Вот самый простой способ сделать это:

(* Set some values in your table.*) 
In[1]:=  table[a] = foo; table[b] = bar; table[c] = baz;

(* Test whether some keys are present. *)
In[2]:=  {ValueQ[table[a]], ValueQ[table[d]]}
Out[2]:= {True, False}

(* Get a list of all keys and values, as delayed rules. *)
In[3]:=  DownValues[table]
Out[3]:= {HoldPattern[table[a]] :> foo, HoldPattern[table[b]] :> bar,
HoldPattern[table[c]] :> baz}

(* Remove a key from your table. *)
In[4]:=  Unset[table[b]]; ValueQ[table[b]]
Out[4]:= False
22
ответ дан 30 November 2019 в 11:18
поделиться

Я бы сказал, что наиболее похожей структурой, которую вы можете получить из коробки , являются разреженные массивы .

8
ответ дан 30 November 2019 в 11:18
поделиться

Я согласен с Пилси, но см. Также этот ответ:

Mathematica Downvalue Lhs

Включает удобную функцию для получения ключей хеш-таблицы.

5
ответ дан 30 November 2019 в 11:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: