Skip to content

llGenerateKey

key llGenerateKey()

Generates a key (SHA-1 hash) using UUID generation to create a unique key.

As the UUID produced is versioned, it should never return a value of NULL_KEY.

The specific UUID version is an implementation detail that has changed in the past and may change again in the future. Do not depend upon the UUID that is returned to be version 5 SHA-1 hash.

  • The specific UUID version is an implementation detail that has changed in the past and may change again in the future. Do not depend upon the UUID that is returned to be Version 5.
  • As the UUID produced is versioned, it should never return a value of NULL_KEY.
default
{
touch_start(integer num_detected)
{
// avatar touching
key avatarKey = llDetectedKey(0);
string avatarName = llKey2Name(avatarKey);
// key of the owner
key owner = llGetOwner();
// generated random key
key random = llGenerateKey();
// number of objects inside the same prim
integer numberOfObjects = llGetInventoryNumber(INVENTORY_OBJECT);
if (numberOfObjects)
{
// name of first object sorted by name inside the prim's inventory
string itemName = llGetInventoryName(INVENTORY_OBJECT, 0);
llGiveInventory(avatarKey, itemName);
llInstantMessage(avatarKey, "Your transaction key is '" + (string)random + "'.");
llInstantMessage(owner, "Transaction record:\n"
+ "receiver: " + avatarName + " (" + (string)avatarKey + ")\n"
+ "item: " + itemName + "\n"
+ "transaction key: " + (string)random);
}
else
{
// PUBLIC_CHANNEL has the integer value 0
llSay(PUBLIC_CHANNEL, "No items to give away, sorry!");
}
}
}
  • Changed from using Version 3 (MD5 hash) to Version 5 (SHA-1 hash). Date of this change is unknown.
  • Inspired by the library function generateKey.