求一个可逆的数字加密算法,将固定长度的数字转换为相同长度的数字

求一个可逆的数字加密算法,将固定长度的数字转换为相同长度的数字。
比如输入三位的数字就输出一个三位的数字(第一位可以是0),输入4位数字,则输出4位数字
要求具有一定的复杂度,不能是经典的加密算法(置换,移位之类的)

做梦。
明文/密文可表示的数量一致(比如三位的数字两边都是1000个),又要可逆,只能一一对应,无论算法再复杂,实质还是置换,把1000个数字都加密一遍,就得到完整的置换表了。