Does the output of a cipher have to be no longer than the input? I have recently been playing around with cyphers and creating some simple ones to practice and improve my programming skills, and I recently created a cipher which in my opinion is very complex and secure, even utilising binary, and then I started to wonder whether or not my cipher could actually be used, so after doing a little bit of research I found out that, apparently, a cipher isnt good unless its the same length as the original? so if you input "password" my cypher outputs "[.##4959#12#41#8#{20", a very complex algorithm is used here, and my idea was that this cipher would be used with short pieces of text/numbers, like passwords or bank account numbers. so is my cypher useless?
a cipher isnt good unless its the same length as the original?


This is completely false. In fact, with most modern block cipher modes of operation, you will get ciphertext lengths that are longer than the original input. In fact, a ciphertext length longer than the input is a requirement for integrity protections (which is a must-have these days).


  so is my cypher useless?


This we cannot judge given the information you've posted. Ciphertext to plaintext length ratio is meaningless when it comes to determining the utility of a cipher. If you want to know if your cipher is useful, you need to 1) publish the full details of the algorithm, 2) describe its benefits when compared to existing ciphers (what new capabilities does your cipher give me that I don't already have with AES), 3) get a bunch of really smart cryptographers to work on breaking it for years.