クラウド上で宝探しの地図を暗号化し保管する
任意のWolfram言語式を暗号化することができる.
Blowfishのメソッドを使った秘密のパスワードから強力な対称鍵を生成する.
In[1]:=
skeletonKey = GenerateSymmetricKey["Avast ye!", Method -> "Blowfish"]
Out[1]=
生成された鍵を使って,宝の在り処を暗号化してGeoMarkerに保管し,GeoGraphicsを使って可視化する.
完全なWolfram言語入力を表示する
Out[2]=
In[3]:=
hiddenTreasure = Encrypt[skeletonKey, treasureMap]
Out[3]=
局所鍵を使ってデータが安全に暗号化されたので,地図をWolfram Cloudにアップロードする.
In[4]:=
stowed = CloudPut[hiddenTreasure]
追跡されないように,もとの地図と鍵をClearを使って削除する.
In[5]:=
Clear[hiddenTreasure]
In[6]:=
Clear[skeletonKey]
この鍵はパスワードを使って作られたものなので,もとの入力を使って新たな鍵を作成することが可能である.
In[7]:=
newKey = GenerateSymmetricKey["Avast ye!", Method -> "Blowfish"]
Out[7]=
この新しい鍵を使って,クラウドに配備された地図を参照することができる.
In[8]:=
reclaimedMap = Decrypt[newKey, CloudGet[stowed]]
Out[8]=
宝の在り処を抽出する.
In[9]:=
treasureLocation = reclaimedMap[[3, 2]]
Out[9]=
車を運転する道順を尋ねる.
In[10]:=
TravelDirections[{$GeoLocation, treasureLocation}]
Out[10]=
海の上を運転して宝に行き着くことはできないので,GeoDistanceを使って距離を調べる.
In[11]:=
GeoDistance[$GeoLocation, treasureLocation]
Out[11]=
この距離をもとに,宝に最も近い空港を見付ける.
In[12]:=
airport = First[GeoNearest["Airport", treasureLocation]]
Out[12]=
その空港から宝までの距離.
In[13]:=
GeoDistance[airport, treasureLocation]
Out[13]=