Язык Wolfram Language

Системные функциональные возможности системы

Шифровка и хранение карты сокровищ в облаке

Любое выражение на языке Wolfram Language может быть зашифровано.

Сгенерируйте сильный симметричный ключ, полученный из тайного пароля при помощи метода Blowfish.

In[1]:=
Click for copyable input
skeletonKey = GenerateSymmetricKey["Avast ye!", Method -> "Blowfish"]
Out[1]=

Зашифруйте расположение сокровища, хранящегося в GeoMarker, и визуализируйте его, используя GeoGraphics, при помощи созданного ключа.

код на языке Wolfram Language целиком
In[2]:=
Click for copyable input
treasureMap = GeoGraphics[{GeoMarker[GeoPosition[{15.9429, -86.5031}], Text[Style["x", FontFamily -> "Bradley Hand", FontSize -> 24]]]}, FrameLabel -> "Where the Gold is Buried", Frame -> True, ImageSize -> 300, GeoBackground -> "StreetMapNoLabels"]
Out[2]=
In[3]:=
Click for copyable input
hiddenTreasure = Encrypt[skeletonKey, treasureMap]
Out[3]=

Теперь, когда данные безопасно зашифрованы при помощи локального ключа, загрузите карту в облако Wolfram Cloud.

In[4]:=
Click for copyable input
stowed = CloudPut[hiddenTreasure]
Out[4]=

Для того, чтобы засекретить ценную информацию, удалите оригинальную карту и ключ, используя Clear.

In[5]:=
Click for copyable input
Clear[hiddenTreasure]
In[6]:=
Click for copyable input
Clear[skeletonKey]

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

In[7]:=
Click for copyable input
newKey = GenerateSymmetricKey["Avast ye!", Method -> "Blowfish"]
Out[7]=

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

In[8]:=
Click for copyable input
reclaimedMap = Decrypt[newKey, CloudGet[stowed]]
Out[8]=

Извлеките расположение сокровища.

In[9]:=
Click for copyable input
treasureLocation = reclaimedMap[[3, 2]]
Out[9]=

Запросите маршрутный лист.

In[10]:=
Click for copyable input
TravelDirections[{$GeoLocation, treasureLocation}]
Out[10]=

Поскольку невозможно указать маршрут до сокровища, рассчитайте расстояние при помощи GeoDistance.

In[11]:=
Click for copyable input
GeoDistance[$GeoLocation, treasureLocation]
Out[11]=

Определите ближайший к сокровищу аэропорт с учетом данного расстояния.

In[12]:=
Click for copyable input
airport = First[GeoNearest["Airport", treasureLocation]]
Out[12]=

Расстояние от аэропорта до сокровища.

In[13]:=
Click for copyable input
GeoDistance[airport, treasureLocation]
Out[13]=

Родственные примеры

de en es fr ja ko pt-br zh