<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.secondlife.com/w/index.php?action=history&amp;feed=atom&amp;title=User%3AClarknova_Helvetic%2FGen_Chan</id>
	<title>User:Clarknova Helvetic/Gen Chan - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.secondlife.com/w/index.php?action=history&amp;feed=atom&amp;title=User%3AClarknova_Helvetic%2FGen_Chan"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Clarknova_Helvetic/Gen_Chan&amp;action=history"/>
	<updated>2026-04-08T13:28:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Clarknova_Helvetic/Gen_Chan&amp;diff=51264&amp;oldid=prev</id>
		<title>Clarknova Helvetic: article created</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Clarknova_Helvetic/Gen_Chan&amp;diff=51264&amp;oldid=prev"/>
		<updated>2008-01-26T08:04:15Z</updated>

		<summary type="html">&lt;p&gt;article created&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This &amp;#039;&amp;#039;&amp;#039;genChan()&amp;#039;&amp;#039;&amp;#039; function returns a large negative number based on a &amp;#039;&amp;#039;key&amp;#039;&amp;#039;, a &amp;#039;&amp;#039;modifier&amp;#039;&amp;#039;, and a &amp;#039;&amp;#039;pin&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
The number is within bounds for object-to-object chat channels, but out of range of the channel scanners currently on the market.&lt;br /&gt;
&lt;br /&gt;
If the key, modifier and pin are the same, the channel will be uniform regardless of the script.&lt;br /&gt;
&lt;br /&gt;
This isn&amp;#039;t randomness, and it&amp;#039;s not encryption, but it&amp;#039;s simple and quick, and good enough to make reverse engineering of the system communications in real time super duper impractical.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;integer secret_channel;&lt;br /&gt;
&lt;br /&gt;
//  Where k is the owner&amp;#039;s key, mod is either 2 or 3, and pin is a number between 1 &amp;amp; 500,000&lt;br /&gt;
&lt;br /&gt;
integer genChannel(key k , integer mod, integer pin) &lt;br /&gt;
{  &lt;br /&gt;
    float a = (float)(&amp;quot;0x&amp;quot;+llGetSubString( (string)k, mod,-1));       &lt;br /&gt;
    integer b =  llRound( llFabs(a) - a*2 + pin );          &lt;br /&gt;
    return b;&lt;br /&gt;
} &amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can define the channel in state_entry() thus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;secret_channel = genChan(llGetOwner() , 2 , 12345); &amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As long as the pin is secret your cooms will be too.&lt;/div&gt;</summary>
		<author><name>Clarknova Helvetic</name></author>
	</entry>
</feed>