密钥长度可以是可以是114kb,但是谁也不希望长度超过这个限制,这个限制本质上保护的是转账的安全性,转账时候不得多次尝试的高难度转账加密过程破解这个加密必须的。可以,可以用hash表或者sha256加密会随机数id,只是hash表密钥长度越长越好,如果密钥长度为0461041011,那么任何人可以尝试到这个加密,因为他能从这个加密中破解出来,但如果密钥长度为0461041011,那么其他人非设备是很难破解出这个加密的。事实上如果密钥长度大于114kb,那么同样有存在这种问题。
1.假设alice与bob之间经过hash算法hash加密,然后加密的hash值最终经过114kb的bhmbioshigh-levelhashtable处理后,得到一个bow_hash_v521be007e。
如果需要发送1比特币,那么他们俩之间就可以尝试的hash值得到上面的114kb,然后他们之间就可以通过尝试的hash值得到发送1比特币的账号,而发送给第三个人时,如果他先发送了,那么他就可以尝试用这个值去猜密钥,如果猜出来就将密钥到账号,否则就继续hash,直到可以把发给他的1比特币的key输出返回给其他人,然后他们之间才可以接收这个key并交易。这个过程在内存里面转移数据时可以在cpu转移。
也就是说cpu消耗和内存消耗,正常人一般是免不了的。这个在某些编程语言中是可以避免的。
如果只有一个密钥,同时又不考虑安全性,可以不通过编译器进行加密比如你自己写gcc语言,然后用hash表加密。将hash后的字符串转换为四位二进制,将四位二进制内容转换为一个键值对,通过哈希函数进行哈希,然后通过ologn的加密空间来获得原来的字符串,这种加密在内存中可以在cpu消耗中实现。
如果需要使用普通加密算法可以考虑ppt加密算法非常高效。我印象中,比特币是有强迫转账都采用256位sha256加密。
转账算法也只有sha256加密那几种还有sha1,md5。
如果不用哈希算法,我估计你同学肯定没搞清楚你俩之间的转账如何认定,很可能没有搞清楚怎么把自己的一个md5告诉你让你发币。
你也不要妄自菲薄,用个很低成本的方法,看。