Cifre y almacene un mapa del tesoro en la nube
Cualquier expresión de Wolfram Language puede ser cifrada.
Genere una clave simétrica fuerte derivada a partir de una contraseña secreta usando el método de Blowfish.
![Click for copyable input](assets.es/encrypt-and-store-a-treasure-map-on-the-cloud/In_32.png)
skeletonKey = GenerateSymmetricKey["Avast ye!", Method -> "Blowfish"]
![](assets.es/encrypt-and-store-a-treasure-map-on-the-cloud/O_27.png)
Cifre la ubicación del mensaje, almacénelo en un GeoMarker y visualícelo usando GeoGraphics, usando la clave generada.
![](assets.es/encrypt-and-store-a-treasure-map-on-the-cloud/O_28.png)
![Click for copyable input](assets.es/encrypt-and-store-a-treasure-map-on-the-cloud/In_34.png)
hiddenTreasure = Encrypt[skeletonKey, treasureMap]
![](assets.es/encrypt-and-store-a-treasure-map-on-the-cloud/O_29.png)
Ahora que los datos han sido cifrados de forma segura usando una clave local, cargue el mapa a Wolfram Cloud.
![Click for copyable input](assets.es/encrypt-and-store-a-treasure-map-on-the-cloud/In_35.png)
stowed = CloudPut[hiddenTreasure]
Con el fin de cubrir los rastros, deseche el mapa original y la clave usando Clear.
![Click for copyable input](assets.es/encrypt-and-store-a-treasure-map-on-the-cloud/In_36.png)
Clear[hiddenTreasure]
![Click for copyable input](assets.es/encrypt-and-store-a-treasure-map-on-the-cloud/In_37.png)
Clear[skeletonKey]
Dado que la clave fue derivada usando una contraseña, usted puede crear una nueva clave usando la entrada original.
![Click for copyable input](assets.es/encrypt-and-store-a-treasure-map-on-the-cloud/In_38.png)
newKey = GenerateSymmetricKey["Avast ye!", Method -> "Blowfish"]
![](assets.es/encrypt-and-store-a-treasure-map-on-the-cloud/O_31.png)
La nueva clave ahora puede ser usada para referirse al mapa implementado en la nube.
![Click for copyable input](assets.es/encrypt-and-store-a-treasure-map-on-the-cloud/In_39.png)
reclaimedMap = Decrypt[newKey, CloudGet[stowed]]
![](assets.es/encrypt-and-store-a-treasure-map-on-the-cloud/O_32.png)
Extraiga la ubicación del tesoro.
![Click for copyable input](assets.es/encrypt-and-store-a-treasure-map-on-the-cloud/In_40.png)
treasureLocation = reclaimedMap[[3, 2]]
![](assets.es/encrypt-and-store-a-treasure-map-on-the-cloud/O_33.png)
Pregunte por direcciones de conducir.
![Click for copyable input](assets.es/encrypt-and-store-a-treasure-map-on-the-cloud/In_41.png)
TravelDirections[{$GeoLocation, treasureLocation}]
![](assets.es/index.es/M_2.gif)
![](assets.es/encrypt-and-store-a-treasure-map-on-the-cloud/O_34.png)
Dado que no hay una ruta de manejo al tesoro, calcule su distancia usando GeoDistance.
![Click for copyable input](assets.es/encrypt-and-store-a-treasure-map-on-the-cloud/In_42.png)
GeoDistance[$GeoLocation, treasureLocation]
![](assets.es/encrypt-and-store-a-treasure-map-on-the-cloud/O_35.png)
Dada la distancia, ubique el aeropuerto más cercano al tesoro.
![Click for copyable input](assets.es/encrypt-and-store-a-treasure-map-on-the-cloud/In_43.png)
airport = First[GeoNearest["Airport", treasureLocation]]
![](assets.es/encrypt-and-store-a-treasure-map-on-the-cloud/O_36.png)
La distancia desde dicho aeropuerto al tesoro.
![Click for copyable input](assets.es/encrypt-and-store-a-treasure-map-on-the-cloud/In_44.png)
GeoDistance[airport, treasureLocation]
![](assets.es/encrypt-and-store-a-treasure-map-on-the-cloud/O_37.png)